为什么WifiInfo.getRssi()总是返回-200?

时间:2010-10-08 17:47:10

标签: android wifi

我做了一个显示实际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是某种“错误值”吗?

2 个答案:

答案 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的问题。

谢谢你的回答!对不起,我没有在此感谢