Native.js 获取Android 手机 MAC 物理地址, Android 版本众多,之前的方法已经不支持最新的版本获取MAC地址了
在Android 6.0 之前可以获取MAC 方法,到了6.0版本后,不再支持此方法获取MAC地址了。
此方法,支持移动网络下获取MAC地址
var Context = plus.android.importClass("android.content.Context");
var WifiManager = plus.android.importClass("android.net.wifi.WifiManager");
var wifiManager = plus.android.runtimeMainActivity().getSystemService(Context.WIFI_SERVICE);
var WifiInfo = plus.android.importClass("android.net.wifi.WifiInfo");
var wifiInfo = wifiManager.getConnectionInfo();
wifiInfo.getMacAddress();
Android 6.0之后动态授权对隐私保护高了, 采用的获取MAC 的方法是读取 /sys/class/net/wlan0/address ,
此方法有些型机,只能在WIFI开启的状态下才能获取到MAC 地址
var BufferedReader=plus.android.importClass("java.io.BufferedReader");
var FileReader=plus.android.importClass("java.io.FileReader");
var file=new FileReader("/sys/class/net/wlan0/address");
var reader = new BufferedReader(file,256);
var address=reader.readLine();
reader.close();
Android 7.0 + 以上的方法也都没用了,谷歌对隐私要求更严格了,禁止读取/sys/class/net/wlan0/address 了, 但还是有方法读取到MAC , 采用的是 NetworkInterface 对端口扫描 读取到 wlan0 的值,它就是MAC地址了,
此方法有些型机,只能在WIFI开启的状态下才能获取到MAC 地址
var NetworkInterface=plus.android.importClass("java.net.NetworkInterface");
var networkInterface = NetworkInterface.getByName("eth1");
networkInterface = NetworkInterface.getByName("wlan0");
var mac=networkInterface.getHardwareAddress();
写了一个获取 MAC 的插件,封装了以上三种方法一起,可以获取所有机型的MAC的地址。
有需要的可以到这个下载: http://www.html5-app.com/show/101
获得 MacAddress.js 引到 页面就可以 ,通过以下方法,可以获得MAC 地址。
mui.plusReady(function()
{
var address=Mac.address();
});
10 个评论
要回复文章请先登录或注册
z***@163.com
1***@qq.com
5***@qq.com
9***@qq.com
王者地带 (作者)
5***@qq.com
Lvzz
王者地带 (作者)
老哥教教我
大A