该文章或问题已被删除

Android 获取 手机本机 MAC 地址 支持 所有 Android 版本

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的地址。

在附件下载, 获得 MacAddress.js 引到 页面就可以 ,通过以下方法,可以获得MAC 地址。

mui.plusReady(function()
{
          
    var address=Mac.address();
 	
           
});


如果返回:02:00:00:00:00:00 ,说明获取失败。

MacAddress.zip | 1.25KB



如果发现360解压或其他软件解压,出现压缩包损坏的提示,请更用 WinRAR 解压

点赞 6      收藏 2

2 个评论

正在加载...

这里空空如也,快来补一刀!

加载更多

回答问题或评论文章请先 或者 注册