У меня есть 2 разных файла, которые должны инициализировать один и тот же широковещательный приемник. У меня проблемы с получением результатов. Иногда я получаю нулевые значения, что является результатом неспособности правильно ссылаться на класс, который инициировал сканирование.
Вот пример кода.
public void Connection_Logic (Context c)
IntentFilter wififilter;
wififilter = new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
public WifiManager wifiManager;
wifireceiver = serviceConsume.wifireceiver;
c.registerReceiver(wifireceiver, wififilter);
wifiManager.startScan();
}
public class serviceConsume {
public WifiManager wifiMan;
wifiMan = (WifiManager)getBaseContext().getSystemService(Context.WIFI_SERVICE);
public BroadcastReceiver wifireceiver = new Wifi_Broadcast(this);
IntentFilter wififilter;
wififilter = new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
registerReceiver(wifireceiver, wififilter);
wifiMan.startScan();
}
public class Wifi_Broadcast extends BroadcastReceiver {
public ServiceConsume main;
public Connection_Logic ConnLog;
public Wifi_Broadcast(ServiceConsume main) {
super();
this.main = main;
}
public Wifi_Broadcast(Connection_Logic ConnLog) {
super();
this.ConnLog = ConnLog;
}
@Override
public void onReceive(Context c, Intent intent) {
if(main != null) {
List<ScanResults> results = ConnLog.wifiManager.getScanResults();
} else if (ConnLog != null) {
List<ScanResults> results = ConnLog.wifiMan.getScanResults();
}
}
}
У кого-нибудь есть идеи, почему я могу получить нулевые значения для результатов? Я делаю это неправильно? Если у кого-нибудь есть пример кода этой работы, это будет оценено.
Спасибо!