いくつかのテストを行った後、電話がスリープモードまたはロックモードになったときに、Wi-Fi信号強度(RSSI)とWi-Fiリンク速度が変化しないことに気付きました(私はサービスと記録強度を実行していますバックグラウンドでのlinkspeed)一方、電話がスリープモードになっても、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;
}