我是靠谱客的博主 欣慰大地,最近开发中收集的这篇文章主要介绍Android 6.0获取wifi Mac地址为02:00:00:00:00:00的解决方法,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
参考:http://blog.csdn.net/jia635/article/details/51899919
之前使用的方法如下:
// Android 6.0之前的版本可以用的方法(模拟器可以使用)
private String getMacAddrOld()
{
String macString = "";
WifiManager wifimsg = (WifiManager)getSystemService(Context.WIFI_SERVICE);
if (wifimsg != null)
{
if (wifimsg.getConnectionInfo() != null)
{
if (wifimsg.getConnectionInfo().getMacAddress() != null)
{
macString = wifimsg.getConnectionInfo().getMacAddress();
}
}
}
return macString;
}
使用这个方法,在模拟器上是可以正常获取wifi mac地址,但是在Android 6.0系统上,获取的就有问题,返回的是“02:00:00:00:00:00”
谷歌搜到了如下的方法,可以获取Android6.0系统的wifi Mac 地址。
但是这个方法,却获取不到模拟器的地址,或者是获取到的和上面的方法不同,而且不准确。
public static String getMacAddr() {
try {
List<NetworkInterface> all = Collections.list(NetworkInterface.getNetworkInterfaces());
for (NetworkInterface nif : all) {
if (!nif.getName().equalsIgnoreCase("wlan0")) continue;
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 ex) {
}
return "02:00:00:00:00:00";
}
最后,是先使用旧的方法获取,如果获取到的是“02:00:00:00:00:00”,那么就调用下面的新方法。
public String getDeviceMacAddress()
{
String addr = getMacAddrOld();
if(addr.equals("02:00:00:00:00:00"))
{
addr = SystemInfo.getMacAddr();
}
return addr;
}
最后
以上就是欣慰大地为你收集整理的Android 6.0获取wifi Mac地址为02:00:00:00:00:00的解决方法的全部内容,希望文章能够帮你解决Android 6.0获取wifi Mac地址为02:00:00:00:00:00的解决方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复