屏幕关闭时无法更新Wifi RSSI

时间:2017-05-10 14:48:52

标签: android sleep android-wifi wifimanager rssi

我尝试使用 AsyncTask 服务中获取当前 RSSI 的wifi连接。当屏幕关闭时,在我再次打开显示屏之前,不会更新该值。因此,该值与显示关闭前获得的最后一个值保持一致。

我使用了带有Android O预览的Nexus 6P和带有Android 6的LG 3。

我通过以下方式获得 WakeLock WifiLock

PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "WifiMeasureTaskWakeLock");
mWakeLock.acquire();

mWifiLock = mWifiManager.createWifiLock(WifiManager.WIFI_MODE_FULL_HIGH_PERF, "WifiMeasureTaskWifiLock");
mWifiLock.acquire();

在doInBackground方法中我执行以下操作:

@Override
protected Void doInBackground(final Void... params) {

    int dBm;

    try {
       //some other code here

        while (true) {
            if (isCancelled()) {
                //some other code here
                return null;
            }

            try {
                //some other code here

                //does not update when the screen if turned off
                dBm = Math.max(mWifiManager.getConnectionInfo().getRssi(), -100);

                //some other code here
                }
            } catch (IOException e) {
               //some other code here
            }
        }
    } catch (SocketException e) {
        //some other code here
    }
    return null;
}

我已经找到了issue in the issue tracker,但它已经过时了。

有人知道如何解决这个问题吗?

0 个答案:

没有答案