Почему WifiInfo.getRssi () всегда возвращает -200? - PullRequest
0 голосов
/ 08 октября 2010

Я сделал заявку, которая показывает фактическую информацию о подключении Wi-Fi.

      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, независимо от того, подключен я к сети Wi-Fi или нет.

У меня нет телефона для тестирования, но у меня есть компьютер с Android для ПК.

Эмулятор Android SDK не работает через Wi-Fi, но getRssi () по-прежнему возвращает -200.

Является ли -200 своего рода "значением ошибки"?

Ответы [ 2 ]

0 голосов
/ 06 января 2011

Ну, в то время я ничего не мог с этим поделать. Я всегда получал -200 и не мог понять, что это значит. Но я использовал ScanResult, чтобы делать то, что мне было нужно.

Теперь, когда у меня есть настоящий телефон, я решил попробовать еще раз, и он работает. Так что это проблема эмулятора и х86 андроида.

Спасибо за ответ! извини, я не благодарил раньше

0 голосов
/ 09 октября 2010

Я так думаю - по крайней мере, его можно найти в исходном коде Android, см. Здесь (строка 1548): https://android.googlesource.com/platform/frameworks/base/+/gingerbread-release/wifi/java/android/net/wifi/WifiStateTracker.java#1548

Это не определенная константа, если вы хотите это знать.

Я советую вам не использовать эмулятор для тестирования WiFi. Может быть, вы можете взять реальное устройство Android где-нибудь. Или просто купите одно - новые устройства Android действительно потрясающие!

...