Android 6.0获取wifi Mac地址为02:00:00:00:00:00的解决方法

Android 获取本机蓝牙地址【Mac地址】区分6.0 最近在搞蓝牙通讯,需要用到本机MAC地址,本以为很简单, 实际上.........................................就是很简单。 不废话,上代码 需要权限 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permissi... 阅读详情

参考:http://blog.youkuaiyun.com/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;
    }


Android10 WIFI MAC地址获取流程 阅读详情

相关推荐

掌握Android中获取Mac地址的多种方法

在Android开发中,获取设备的物理地址(通常称为MAC地址)是一个常见的需求,这在早期版本中通过WifiManager类来实现。然而,随着Android版本的不断迭代更新,特别是从Android 6.0开始,获取MAC地址的方法发生了变化。本章将概述这些变化,并介绍Android 6.0之前和之后获取MAC地址的不同方法及其应用场景。在Android 6.0之前,开发者通过WifiManager类获取MAC地址是一种直接而有效的方式,但这种方式在新版本中遇到了限制。

weixin_32251525的博客 3137

Android MAC地址 02:00:00:00:00:00

转载:http://blog.csdn.net/zhaohaiyan629/article/details/51122344 谷歌在6.0及以后版本对获取wifi及蓝牙MacAddress 做的改动。 Most notably, Local WiFi and Bluetooth MAC addresses are no longer available. The getMacAdd

Levin的专栏 1万+

解决Android 6.0获取wifi Mac地址为02:00:00:00:00:00问题

主要介绍了Android 6.0获取wifi Mac地址为02:00:00:00:00:00的解决方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

Android6.0系统获getMacAddress()取Mac地址返回02:00:00:00:00:00解决办法

Android6.0系统获getMacAddress()取Mac地址返回02:00:00:00:00:00解决办法 在做用户信息统计时,发现 安卓6.0系统用户返回的Mac地址都是02:00:00:00:00:00,被误判为作弊用户,实际上是谷歌在6.0及以后版本对获取wifi及蓝牙MacAddress 做的改动。 Most notably, Local WiFi and Bluetoo...

lisizhe1989的博客 5456

峰岹FU6832L双核电机控制芯片实战:从FOC算法到BLDC/PMSM驱动开发

在嵌入式系统和电机控制领域,磁场定向控制(FOC)是实现无刷直流电机(BLDC)和永磁同步电机(PMSM)高效、平稳运行的核心算法。其原理是通过坐标变换将三相交流量分解为直流量,实现类似直流电机的转矩与磁场解耦控制,从而提升效率、降低噪音与振动。这项技术的工程价值在于能以更低的处理器开销实现高性能驱动,广泛应用于消费电子、工业自动化与智能家电。本文以峰岹FU6832L芯片为例,深入解析其独特的双核架构——将实时性要求极高的FOC运算交由专用硬件引擎处理,解放主控CPU处理应用逻辑,并结合PID参数整定、电流

weixin_29570795的博客 508

【机器学习】实验3,贝叶斯垃圾邮件识别(完整代码实现+报告)

电子邮件是互联网的一项重要服务,在大家的学习、工作和生活中会广泛使用。但是大家的邮箱常常被各种各样的垃圾邮件填充了。有统计显示,每天互联网上产生的垃圾邮件有几百亿近千亿的量级。因此,对电子邮件服务提供商来说,垃圾邮件过滤是一项重要功能。而朴素贝叶斯算法在垃圾邮件识别任务上一直表现非常好,至今仍然有很多系统在使用朴素贝叶斯算法作为基本的垃圾邮件识别算法。本次实验数据集来自的中文垃圾邮件数据集,目录解压后包含三个文件夹,其中data目录下是所有的邮件(未分词),已分词好的邮件在data_cut目录下。

高丽大学人工智能硕士在读|专注大模型、RAG、OCR与AI工程实践 5025

解决Android 6.0获取wifi Mac地址为02:00:00:00:00:00问题【转】

解决Android 6.0获取wifi Mac地址为02:00:00:00:00:00问题【转】

dearbaba_11的博客 1078

基于任务的后勤智能体:三段构建与演进设计探究

这是系统智能化的核心难点。例如,对于一个“加强连级滩头阵地防御”子任务,系统会根据防御时长、预期敌军攻击强度、地形等因素,计算出所需的弹药(不同弹种的具体数量)、构筑工事的器材、人员的给养和饮水量、以及医疗救护的药品和血包数量。首先进行分词、词性标注等基础处理,然后利用在军事语料库上训练的命名实体识别(NER)模型,提取出关键实体,如任务类型(“夺控作战”)、作战对象(“Y岛”)、时间约束(“D日H时”、“24小时内”)、成功标准(“建立稳固滩头阵地”)、保障重点(“弹药充足”、“及时救治”)等。

weixin_49042442的博客 1088

android6.0及以上获取wifi mac地址的方法(亲测可行)

由于android6.0对wifi mac地址获取进行了限制,用原来的方法获取会获取到02:00:00:00:00:00这个固定地址。 但是可以通过读取节点进行获取"/sys/class/net/wlan0/address" 在6.0以前的获取WiFi的Mac地址 // Android 6.0之前的版本可以用的方法(模拟器可以使用) public String getLoc...

zhangvalue的博客 1万+

Unity接入Google登录:Credential Manager完整集成指南与避坑实践

在移动应用开发中,第三方登录是提升用户体验和降低注册门槛的关键技术。其核心原理是通过OAuth 2.0等授权协议,安全地获取用户在平台的身份凭证。对于面向海外市场的Unity应用,Google登录因其庞大的用户基数成为首选方案。然而,随着Android系统更新和隐私政策收紧,传统的WebView登录方式面临兼容性挑战。Credential Manager作为Google推出的现代化凭据管理API,通过系统级集成解决了这一问题,它统一了密码、通行密钥和第三方登录的调用接口,显著提升了登录成功率和原生体验。在U

weixin_28025327的博客 318

以太网传输硬件设计大全

1.网线的介绍RJ45由插头和插做组成,也就是我们常说的网口和网线。RJ45 网线插头又称水晶头,共有八芯做成。RJ45网络传输线分为直通线、交叉线和全反线。直通线用于异种网络设备之间的互连,例如,计算机与交换机。交叉线用于同种网络设备之间的互连,例如,计算机与计算机。全反线用于超级终端与网络设备的控制物理接口之间的连接。下面将介绍一下各线的作用和区别。1.直通线:又叫正线或标准线,两端采用568B做线标准,注意两端都是同样的线序且一一对应。直通线是应用最广泛,现在最常用的线。

weixin_45365488的博客 6749

Android~获取WiFi MAC地址和IP方法汇总

最近由于项目需求,需要获取手机WiFi的MAC地址和IP,于是乎网上搜罗了一波。各种版本的都有,各种方法都有,而且安卓6.0以下、6.0~7.0、7.0以上版本差异都很大!在这里我就集中给归一下类,方便以后查阅。 1. 归类 6.0之前通过WifiManager修改xml权限获取。 6.0~7.0读取系统文件或shell命令获取。 7.0以后通过网络接口驱动wlan0获取。 2. 推荐使用代码...

Hynson的学习笔记 1万+

TBtools的序列提取步骤

本教程详细介绍了如何使用TBtools软件从原来的FASTA序列中提取特定的DNA序列。

weixin_47509995的博客 1万+

android 6.0 获取mac地址,解决Android 6.0获取wifi Mac地址为02:00:00:00:00:00问题

前言:之前项目比较旧,手机版本还比较低,还使用eclipse开发。用到了需要获取手机wifi Mac地址。使用了如下代码:// Android 6.0之前的版本可以用的方法(模拟器可以使用)private String getMacAddrOld(){String macString = "";WifiManager wifimsg = (WifiManager)getSystemService(...

weixin_31421601的博客 919

使用C# HslCommunication库实现三菱PLC通信(含完整代码示例)

在工业自动化开发中,上位机与PLC的通信是关键环节。HslCommunication库是一个开源的.NET工业通信库,支持三菱、西门子、欧姆龙等多个品牌PLC的通信协议。本文将演示如何通过库实现C#程序与三菱PLC的通信,并提供完整的代码示例。

StevenChen的博客 2287

SEGGER Embedded Studio初体验

先楫HPM5E00EVK开发环境搭建

hywing's blog 1108

Android 获取WIFI MAC地址的方法

1. 常用方法,调用Android的API:WifiManager WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiInfo info = wifi.getConnectionInfo(); return info.getMacAddress();   此方法需要保证WI

youngwhz1的专栏 1万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Android Q 获取 Wifi MAC Address 返回 02:00:00:00:00:00 问题

最近在 Android Q 中需要获取 Wifi MAC Address,使用wifiInfo.getMacAddress() 接口,发现获取到的值为02:00:00:00:00:00,与真实值对不上。代码大概如下: ... WifiManager mWifiManager = (WifiManager) getActivity().getSystemService(WIFI_SERVICE); WifiInfo wifiInfo = mWifiMan..

老农民娃哈哈的博客 5572

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

[RK3288][Android6.0] WiFi MAC地址获取流程小结

Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92 用户空间如何查看MAC地址? /sys/class/net/wlan0/address net目录生成: netdev_kobject_init -&amp;gt; net-sysfs.c class_register(&amp;amp;net_class); net_class: static struct...

Kris Fei's blog 3226

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

关于获取Android6.0的MAC地址

最近接触6.0,发现使用单纯的wifiManager.getConnectionInfo().getMacAddress();方法获取不到MAc地址。后来Google一下发现 Google对硬件信息的访问,其管控更加严格。SD 卡的读写,除了权限声明之外,还应该动态请求,否则就会被禁止。至于 MAC 网络地址的获取,相应的 API 返回的最新结果都是 `02:00:00:00:00:00` 这个固定值。

Kim的博客 4948

android 获取网卡mac_在安卓6.0(及以上)设备上无法获取无线网卡MAC地址的解决方案...

在安卓6.0以下的设备上,通过WifiManager.getConnectionInfo().getMacAddress()即可获取WLAN物理地址,而在6.0及以上,以此方式获取到的MAC地址为固定值02:00:00:00:00:00,而非真实值解决方案WlanMacAddressGetter.javapackage com.example.buyishi.myapplication;impor...

weixin_29128689的博客 1403

Android 6.0后获取Wifi Mac & 蓝牙Mac

Wifi  Mac获取:https://www.jianshu.com/p/16d4ff4c4cbe /** * 遍历循环所有的网络接口,找到接口是 wlan0 * 必须的权限 &lt;uses-permission android:name="android.permission.INTERNET" /&gt; * @return */ private static String g...

欢迎来到潇潇的优快云 3088
上一篇: C++调用lua
下一篇: ulimit调优|设置普通用户的ulimit值
eclipse_c
博客等级 码龄14年 28粉丝 162原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值