以下代码可以直接负责使用

private static final String marshmallowMacAddress = "02:00:00:00:00:00";
    private static final String fileAddressMac = "/sys/class/net/wlan0/address";
    /**
     * 获取手机的MAC地址
     *
     * @param context
     * @return
     */
    public static String getAdresseMAC(Context context) {
        WifiManager wifiMan = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
        WifiInfo wifiInf = wifiMan.getConnectionInfo();

if (wifiInf != null && marshmallowMacAddress.equals(wifiInf.getMacAddress())) {
            String result = null;
            try {
                result = getAdressMacByInterface();
                if (result != null) {
                    return result;
                } else {
                    result = getAddressMacByFile(wifiMan);
                    return result;
                }
            } catch (IOException e) {
                Log.e("MobileAccess", "Erreur lecture propriete Adresse MAC");
            } catch (Exception e) {
                Log.e("MobileAcces", "Erreur lecture propriete Adresse MAC ");
            }
        } else {
            if (wifiInf != null && wifiInf.getMacAddress() != null) {
                return wifiInf.getMacAddress();
            } else {
                return "";
            }
        }
        return marshmallowMacAddress;
    }

private static String getAdressMacByInterface() {
        try {
            List<NetworkInterface> all = Collections.list(NetworkInterface.getNetworkInterfaces());
            for (NetworkInterface nif : all) {
                if (nif.getName().equalsIgnoreCase("wlan0")) {
                    byte[] macBytes = nif.getHardwareAddress();
                    if (macBytes == null) {
                        return "";
                    }

StringBuilder res1 = new StringBuilder();
                    for (byte b : macBytes) {
                        res1.append(String.format("%02X:", b));
                    }

if (res1.length() > 0) {
                        res1.deleteCharAt(res1.length() - 1);
                    }
                    return res1.toString();
                }
            }

} catch (Exception e) {
            Log.e("MobileAcces", "Erreur lecture propriete Adresse MAC ");
        }
        return null;
    }

private static String getAddressMacByFile(WifiManager wifiMan) throws Exception {
        String ret;
        int wifiState = wifiMan.getWifiState();

wifiMan.setWifiEnabled(true);
        File fl = new File(fileAddressMac);
        FileInputStream fin = new FileInputStream(fl);
        ret = crunchifyGetStringFromStream(fin);
        fin.close();

boolean enabled = WifiManager.WIFI_STATE_ENABLED == wifiState;
        wifiMan.setWifiEnabled(enabled);
        return ret;
    }

private static String crunchifyGetStringFromStream(InputStream crunchifyStream) throws IOException {
        if (crunchifyStream != null) {
            Writer crunchifyWriter = new StringWriter();

char[] crunchifyBuffer = new char[2048];
            try {
                Reader crunchifyReader = new BufferedReader(new InputStreamReader(crunchifyStream, "UTF-8"));
                int counter;
                while ((counter = crunchifyReader.read(crunchifyBuffer)) != -1) {
                    crunchifyWriter.write(crunchifyBuffer, 0, counter);
                }
            } finally {
                crunchifyStream.close();
            }
            return crunchifyWriter.toString();
        } else {
            return "No Contents";
        }
    }
    //将获取的int(如:1866655656)转为真正的ip地址,参考的网上的,修改了下
    public static String intToIp(int i) {
        return (i & 0xFF) + "." + ((i >> 8) & 0xFF) + "." + ((i >> 16) & 0xFF) + "." + ((i >> 24) & 0xFF);
    }

android 获取手机的MAC地址相关推荐

  1. Android中获取手机 IMEI Mac地址 IP地址

    一.获取手机IMEI 手机在生产时,每部手机均有一个唯一的标识(ID),国际上采用国际移动设备身份码(IMEI, International Mobile Equipment Identity).IM ...

  2. 获取手机mac php,IOS_iOS如何获取手机的Mac地址,首先说明下,下面两种方法均 - phpStudy...

    iOS如何获取手机的Mac地址 首先说明下,下面两种方法均可以获得手机的mac地址,但是有个限制,是在iOS7以下才可以获得.iOS7以后苹果对于sysctl和ioctl进行了技术处理,MAC地址返回 ...

  3. android 获取设备的mac地址,Android编程获取设备MAC地址的实现方法

    本文实例讲述了Android编程获取设备MAC地址的实现方法.分享给大家供大家参考,具体如下: /** * 获取设备的mac地址 * * @param ac * @param callback * 成 ...

  4. iOS获取手机的Mac地址

    首先说明下,下面两种方法均可以获得手机的mac地址,但是有个限制,是在iOS7以下才可以获得.iOS7以后苹果对于sysctl和ioctl进行了技术处理,MAC地址返回的都是02:00:00:00:0 ...

  5. php获取手机的mac地址,Android手机获取Mac地址的方法

    [导读]这篇文章主要为大家详细介绍了Android手机获取Mac地址的方法,具有一定的参考价值 最常用的方法,通过WiFiManager获取:/** * 通过WiFiManager获取mac地址 *  ...

  6. Android获取手机WiFi IP地址,MAC地址和网关地址程序实例

    现在博主在上大三,正在学习一些计算机网络的一些概念,知道了局域网ip和网关ip不同的概念,当时还纳了闷了2的32次方好像不咋够用啊,原来是这个样子. 由于之前学过一段时间的Android,同时又在上A ...

  7. Android 获取IP与mac地址

    没什么好说的,直接上java代码 import java.net.NetworkInterface; import java.util.ArrayList; import java.util.Coll ...

  8. Android获取手机及路由器的Mac地址和IP地址

    Android获取Mac地址及IP地址需要添加权限, 在AndroidManifest.xml中: <uses-permission android:name="android.per ...

  9. android 获取网卡mac_Android获取本机Mac地址及IP地址方法

    1.Android  获取本机Mac 地址方法: 需要在AndroidManifest.xml文件中添加权限: public String getLocalMacAddress() { WifiMan ...

  10. Android获取手机设备信息并区分真机与模拟器

    有些时候我们不想App在模拟器上被别人使用,所以我们禁止在模拟器上使用App 判断是否为真机: 根据以下四图,我们可以对真机与模拟器来做一个简单区分: 如果Serial码为unkonwn或者andro ...

最新文章

  1. Echo团队Alpha冲刺随笔 - 第九天
  2. “诺奖风向标”--2020年斯隆研究奖公布,其中有16位华人学者获奖!
  3. 铁路网上购票需要完善但值得鼓励
  4. pythontcp_TCP编程
  5. 死信队列和延迟队列_在实践中使用延迟队列
  6. exit与_exit函fork与vfork函数
  7. jquery显示和隐藏元素
  8. 世界你好! 个人网站搭建过程
  9. 此模块的调试信息中缺少源信息_22python中的模块
  10. c++读取和写入TXT文件的整理 1
  11. Linux - 修改系统的max open files、max user processes (附ulimit的使用方法)
  12. python读取dat文件并保存为Excel格式
  13. 集成电路可测性设计DFT技术入门概论--MBIST技术报告
  14. 2019全球最强100家AI公司名单出炉,6家中国公司上榜
  15. Rabbit基础概念
  16. MKS Robin nano V3.0主板使用RRF 固件教程
  17. 利用python实现判断两条直线是否平行,若相交,输出交点。
  18. 邮储社招Java笔试题_2019年及历年中国邮政储蓄银行社招笔试题和参考答案6套
  19. 2022年G2电站锅炉司炉操作证考试题库及答案
  20. 支付宝信用卡还款即将收费,3个方法免手续费!

热门文章

  1. android工厂测试开发,Android开机启动工程测试APK功能开发
  2. Server 2012 R2 安装 Microsoft Windows CredSSP 远程执行代码漏洞补丁
  3. promise兼容性问题
  4. VMware虚拟机磁盘扩容
  5. Spring框架RCE 0day漏洞,官方解决方案
  6. 在Sony VAIO VGN-UX27CN UMPC上安装Windows XP之经验谈
  7. matlab gui中断程序,MATLAB GUI的中斷程序
  8. 编程分钟转化小时怎么编_CNC数控加工中心编程好学吗?多年数控编程工程师指点迷津...
  9. 实验室虚拟仿真建设之技术选型剖析
  10. 网络通信编程大作业--深度研究爬虫技术