获取 mac 接入点地址 Android 10

Getting the mac address of the access point in Android 10

我正在尝试通过

获取我的设备在 Android 10 中连接到的接入点的 mac 地址
WifiManager wifiManager = (WifiManager) applicationContext.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
wifiManager.getConnectionInfo().getBSSID(); //always gets 02:00:00:00:00:00

如上所写https://developer.android.com/reference/android/net/wifi/WifiInfo#getBSSID(),只有当我缺少权利时才会出现此结果

我有以下权限

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

我还需要什么?

以前有人问过这个问题,但我只找到了几年前的答案,并且在 Android 10 中不起作用。 感谢您的帮助

如上所写https://developer.android.com/reference/android/net/wifi/WifiInfo#getBSSID()

getBSSIDreturns"02:00:00:00:00:00",如果调用者权限不足访问BSSID。

您已在清单中添加以下权限。

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

但是您需要运行时权限才能获得上述权限。

请查看 Android 以下 URL 中的文档以了解如何实现运行时权限请求。

https://developer.android.com/training/permissions/requesting