繁体   English   中英

Android:手机休眠时Wi-Fi强度没有改变

[英]Android: Wi-Fi strength is not changing when phone Sleeps

经过一些测试后,我注意到当手机进入睡眠模式或锁定模式时,Wi-Fi信号强度(RSSI)和Wi-Fi链接速度不再改变(我正在运行服务并记录强度,另一方面,即使手机进入睡眠模式,GPS位置也会改变。

对于Wi-Fi强度为什么会发生这种情况有什么解释吗? 如果是这样,是否有解决方法?

这是我用来获取Wi-Fi信息的功能:

private int getStrengthFromWifi() {
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo Info = cm.getActiveNetworkInfo();
    if (Info == null || !Info.isConnectedOrConnecting()) {
        Log.i("MyAppLog - no data (Wifi or Cellular)",
                "No data (Wifi or Cellular)");
        return 0;
    } else {
        int netType = Info.getType();

        if (netType == ConnectivityManager.TYPE_WIFI) {
            WifiManager wifiManager = (WifiManager) getApplicationContext()
                    .getSystemService(Context.WIFI_SERVICE);
            int linkSpeed = wifiManager.getConnectionInfo().getLinkSpeed();
            int wifiStrength = wifiManager.getConnectionInfo().getRssi();
            Log.i("MyAppLog - Link Speed + Wifi Strength",
                    "Wifi Connection : linkSpeed " + linkSpeed
                            + " and Wifi Strength " + wifiStrength);

            return wifiStrength;
        }
    }
    return 0;
}

您需要从系统获取WIFI_MODE_FULL_HIGH_PERF WifiLock,以便在系统进入低功耗状态时继续接收对wifi事件的响应。

请查看Android SDK文档以获取wifi锁定: https//developer.android.com/reference/android/net/wifi/WifiManager.WifiLock.html

并确保检查出此堆栈溢出问题的答案以进行调整设置,以确保wifi不会进入休眠状态: 如何在手机进入睡眠状态时防止Wifi断开连接?

XDA在这里为您提供了一些有用的信息: http : //forum.xda-developers.com/showthread.php?t=1625705

原因是当设备进入睡眠状态时,它试图通过关闭非必需功能来节省电量。 您可能可以获取WakeLock来跟踪信号强度和速度,但是会耗尽电池电量,因此请谨慎使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM