【问题标题】:WifiInfo.getBSSID() only returns null despite phone being connectedWifiInfo.getBSSID() 仅返回 null 尽管电话已连接
【发布时间】:2020-07-25 01:24:47
【问题描述】:

我需要找到我所连接的 AP 的 MacAddress。做了一些研究,最后我使用了来自以下线程的 sn-p:Wifi getSSID() returns null

代码如下所示:

String mac = "02:00:00:00:00:00";
WifiManager wifiMgr = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
       while(mac.equals("02:00:00:00:00:00")) {
             WifiInfo wifiInfo = wifiMgr.getConnectionInfo();
             mac = wifiInfo.getBSSID();
             Log.d("Wifi", "WifiInfo : " + wifiInfo.toString());
          }
Log.d("Wifi", "YAY!" + mac);

(我是这样写的,如果由于某种原因它返回 null,它会重做它,直到它返回其他东西,因为根据一些答案它并不总是一致的)

不幸的是,输出总是:D/Wifi: WifiInfo: SSID: , BSSID: 02:00:00:00:00:00, MAC: 02:00:00:00:00:00, Supplicant state: COMPLETED, RSSI: -74, Link speed: 58Mbps, Tx Link speed: 58Mbps, Rx Link speed: -1Mbps, Frequency: 2412MHz, Net ID: -1, Metered hint: false, GigaAp: false, VenueName: null, WifiMode: 4, HotspotLiveAp: false, score: 55

清单具有必要的权限(根据几个线程,可能缺少一些东西):

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

为了查看问题是否出在外部,我下载了一个 WifiAnalyzer 到我的手机,但它正确显示了我附近的 AP 的 mac 以及我在运行我的应用程序时连接的那个,所以问题不能在 AP 设置中或其他任何内容中。

多个线程讨论了类似但不相同的问题: Wifi getSSID() returns null Why WifiConfiguration.BSSID is always null? How to get BSSID of all wifi access points?

但要么没有答案,要么专注于问题的不同方面,要么答案不起作用,而且它们都相当老了。

TL;DR 我想要手机连接的AP的mac地址,但是getBSSID()总是返回null。

【问题讨论】:

    标签: java android android-wifi wifimanager


    【解决方案1】:

    好吧,原来答案不在代码中。无论您的权限如何,在 android 10 中您都需要进入设置并允许您的应用访问位置,否则 getBSSID() 将返回“02:00:00:00:00:00”,所以如果您希望这样做自动,通过应用程序而不是手动在会议中,您需要添加将更改设备设置的权限弹出窗口。至于怎么做,我确定有教程,同时我的问题已经解决了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-25
      • 1970-01-01
      • 2013-10-31
      • 1970-01-01
      • 1970-01-01
      • 2017-05-27
      • 1970-01-01
      相关资源
      最近更新 更多