Я пишу приложение для Android, которое порождает сервис, который периодически проверяет состояние Wi-Fi и изменяет его в зависимости от некоторых условий.Моя проблема в том, что всякий раз, когда я пытаюсь создать объект WifiManager для проверки состояния Wi-Fi (и, возможно, управления им), он дает мне неинициализированный объект.Вот код:
public class WifiCheckerService extends Service {
// Service code and run() method
private void checkWifi() {
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
System.out.println(wifi.getConnectionInfo());
// Rest of code
}
}
А вот строка в журнале, когда он получает этот код.
02-18 05:22:59.274: INFO/System.out(1170): SSID: <none>, BSSID: <none>, MAC: <none>, Supplicant state: UNINITIALIZED, RSSI: -200, Link speed: -1, Net ID: -1
Очевидно, я не получаю системный объект WifiManager.Я знаю, что это как-то связано с тем, что я работаю в потоке, но у меня все еще возникают проблемы с пониманием концепции и небольшим объяснением того, почему это не работает и как я могу это исправить, было бы очень признательно.
(На некоторой не связанной ноте я думаю, что объяснение также объяснило бы, почему я не могу использовать строку Toast.makeText(getBaseContext(), "Checking Wifi...", Toast.LENGTH_SHORT).show();
в сервисе)