【发布时间】:2019-12-17 11:36:26
【问题描述】:
我有一个可在一部手机上运行的 Android 应用程序。为了在单个设备上工作,我需要获取 MAC 地址或 Android ID。所以我决定获取 MAC 地址,因为应用程序需要连接到指定的 WiFi 网络。那么如何从 Android 设备获取 MAC 地址。
WifiManager manager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo info = manager.getConnectionInfo();
String address = info.getMacAddress();
目前我正在使用它,但它不稳定,但是当应用重新启动时它会崩溃。
它返回 02:00:00:00:00:00. 并且应用程序崩溃
【问题讨论】:
-
你在AndroidManifest.xml中使用
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> -
如上所述 here 在 Android 6.0(API 级别 23)和 Android 9(API 级别 28)之间,本地设备 MAC 地址(例如 Wi-Fi 和蓝牙)不可用通过第三方 API。 WifiInfo.getMacAddress() 方法和 BluetoothAdapter.getDefaultAdapter().getAddress() 方法都返回 02:00:00:00:00:00。 这样您就可以获得需要许可的路由器的 MAC 地址如同一链接中所述。因此,这不会用于唯一识别设备的目的。您应该阅读链接中的整篇文章。
-
请edit您的问题提供一个minimal reproducible example来演示该问题,以及完整的stack trace from the crash。
标签: android mac-address