我做了一个显示实际wifi连接信息的应用程序。
cont = act.getApplicationContext();
wifiManager = (WifiManager)cont.getSystemService(Context.WIFI_SERVICE);
display.setText(cadena + "\n Rssi:" + wifiManager.getConnectionInfo().getRssi()
+ "\n BSSID: " +
wifiManager.getConnectionInfo().getBSSID()
+ "\n wifiState: " +
wifiManager.getWifiState()
+ "\n SSID: " +
wifiManager.getConnectionInfo().getSSID()
+ "\n LinkSpeed: " +
wifiManager.getConnectionInfo().getLinkSpeed()
+ "\n NetworkId: " +
wifiManager.getConnectionInfo().getNetworkId());
该应用程序显示Rssi正确执行的值,我显示-200,无论我是否连接到wifi网络。
我没有手机可以测试它,但我有一台安装了Android的电脑。
Android SDK模拟器不通过wifi连接,但getRssi()仍然返回-200。
-200是某种“错误值”吗?
答案 0 :(得分:0)
我是这么认为 - 至少可以在Android源代码中找到,请参阅此处(第1548行): https://android.googlesource.com/platform/frameworks/base/+/gingerbread-release/wifi/java/android/net/wifi/WifiStateTracker.java#1548
如果你想知道,那不是一个定义的常量。
我建议您不要将模拟器用于WiFi相关测试。也许你可以借用一个真正的Android设备。或者只是继续买一个 - 新的Android设备真的很棒!
答案 1 :(得分:0)
那么,那段时间我对此无能为力。我总是得到-200而且无法理解这意味着什么。但是我使用ScanResult来做我需要的事情。
现在我有一个真正的手机,我决定再次尝试这个并且它有效。所以这是模拟器和x86 android的问题。
谢谢你的回答!对不起,我没有在此感谢