android获取mac地址
16lz
2021-01-23
【Android】获取Mac地址【1】
(1) 调用android 的API: NetworkInterface. getHardwareAddress ()
该API的level为9,只有android 2.3以上才有该接口
(2) 调用java 的方法: nbtstat/arp
一般android不支持这两个命令
(3) 调用Android的API: WifiManager
权限:
1 | |
代码:
1 2 3 4 5 | WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiInfo info = wifi.getConnectionInfo(); return info.getMacAddress(); |
这个是设备开通Wifi连接,获取到网卡的MAC地址
(4) 调用Linux的busybox
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | /* ***************************************************************** * 子函数:获得本地MAC地址 ***************************************************************** */ public String getMacAddress(){ String result = "" ; String Mac = "" ; result = callCmd( "busybox ifconfig" , "HWaddr" ); //如果返回的result == null,则说明网络不可取 if (result== null ){ return "网络出错,请检查网络" ; } //对该行数据进行解析 //例如:eth0 Link encap:Ethernet HWaddr 00:16:E8:3E:DF:67 if (result.length()> 0 && result.contains( "HWaddr" )== true ){ Mac = result.substring(result.indexOf( "HWaddr" )+ 6 , result.length()- 1 ); Log.i( "test" , "Mac:" +Mac+ " Mac.length: " +Mac.length()); if (Mac.length()> 1 ){ Mac = Mac.replaceAll( " " , "" ); result = "" ; String[] tmp = Mac.split( ":" ); for ( int i = 0 ;i |
这个需要设备支持busybox工具
(5)查询记录了MAC地址的文件“/proc/net/arp”
需要有这个文件,并且记录了相应的内容
更多相关文章
- Android的xml文件中@、@android:type、@*、?、@+的含义和区别
- Android布局文件中常用的属性
- Android工具箱之文件目录
- [Android] 基于 Linux 命令行构建 Android 应用(二):命令行管理项目
- android布局文件中各属性所代表的意义
- Android中资源文件的Shape使用总结
- 使用Android adb命令来启动Android应用程序
- 【魔幻塔防】60关配置文件
- 【魔幻塔防】80关配置文件