WifiInfo#getBssid()行为的不一致结果

时间:2018-09-20 13:15:07

标签: android qt

我正尝试在其更改时定义WiFi连接状态。但是我还需要更多-获取WiFi网络的BSSID。

我没有使用BroadcastReceiver方法,而是每秒钟轮询WifiInfo#getBssid()。大多数情况下,它可以正常工作,但是当我的电话连接到WiFi时,我的手机进入相对较长的睡眠时间(>〜小时)后,WifiInfo#getBssid()返回null。

public String getBssid() {
    WifiManager wifiMgr = (WifiManager);
    getApplicationContext().getSystemService(Context.WIFI_SERVICE);
    WifiInfo wifiInfo = wifiMgr.getConnectionInfo();
    String bssid = wifiInfo.getBSSID();
}

我通过JNI从Qt代码调用此函数。

1 个答案:

答案 0 :(得分:0)

问题不是在Android中,而是在Qt中。我将QNetworkConfigurationManager用作NetworkMonitor类的成员,并在检查bssid之前检查了let user = ["...": ..., "userGender": gender]。因此,在设备睡眠唤醒后,直到我在每次唤醒中实现QNetworkConfigurationManager实例的重新创建之后,bearerType都会返回错误的值。