![](/img/trans.png)
[英]turn an android phone into a joypad and connect it to the computer via 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.