如何解决获取没有Wifi的android设备的MAC地址
| 如何获取没有Wifi接口的android设备的网络接口的MAC地址(例如android模拟器)?通过WifiManager获得的WifiInfo返回null。 编辑 更清楚地说:我必须与本地网络上现有的网络协议(不是我设计的)进行通信,在注册阶段,我必须在有效负载内发送通信接口的mac地址。解决方法
读取/ sys / class / net / [something] / address作为文本文件
但这不太可能以您的思维方式有用。
, 我将进行一次飞跃,并假设您想要此MAC地址以便为设备建立唯一标识符。 Mac地址不是执行此操作的方法。
有一个Android开发者博客文章,标题为“识别应用程序安装”,其中涵盖了很好地生成唯一ID的主题,包括流行的方法和优点/缺点。绝对值得一读。与这篇文章非常相关的是以下引用:
可以从设备的WiFi或蓝牙硬件中检索Mac地址。我们不建议将其用作唯一标识符。首先,并非所有设备都具有WiFi。另外,如果未打开WiFi,则硬件可能不会报告Mac地址。
您可以使用的选项包括TelephonyManager.getDeviceId(),android.os.Build.SERIAL和Settings.Secure.ANDROID_ID,所有这些都在链接的文章中进行了详细介绍。
, 请参阅我提交Utils.java示例以提供纯Java实现的帖子。
Utils.getMACAddress(\"wlan0\");
Utils.getMACAddress(\"eth0\");
Utils.getIPAddress(true); // IPv4
Utils.getIPAddress(false); // IPv6
, 您想要MAC地址的网络接口是什么?如果没有wifi,则肯定无法获得wifi设备的MAC地址。它代表物理硬件,如果不存在,则根本不存在。
, 要使用adb获取android设备的wifi MAC:
亚行外壳getprop ril.wifi_macaddr
在Java中使用以下代码以编程方式获取它:
Process p = Runtime.getRuntime.exec(\"adb\",\"shell\",\"getprop\",\"ril.wifi_macaddr\")
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream());
String macAddress = br.readLine();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。