获取没有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();
    

要回复问题请先登录注册