У меня есть широковещательный приемник для сканирования доступных сетей с нормальным кодом, который вы можете легко найти здесь, в StackOverflow.Обновить список доступных сетей - BroadcastReceiver
Я помещаю в свой макет значок для каждой доступной сети, проблема в том, что при удалении сети он все еще показывает это.
Проблема в том, что для этого широковещательного приемника действие/намерение, которое он прослушивает, - это SCAN_RESULTS_AVAILABLE_ACTION. Вначале я могу вызвать startScan(), но после этого сканирования больше не будет. Он только сканирует, если я вручную перейду к настройкам wifi на своем телефоне.
Что может быть возможным для этого? Он должен автоматически удалить сети, которые больше не доступны, но для этого он должен снова выполнить сканирование, но я не знаю, как я должен «запускать» повторное сканирование.
мой код:
public class WifiReceiver extends BroadcastReceiver {
private Vector<String> keywords;
public void onReceive(Context c, Intent intent) {
System.out.println("TOU AQUI NO WIFI RECEIVER !! ");
List<ScanResult> connResults=wifimanager.getScanResults();
List<String> scanResultsSSID = new ArrayList<>() ;
for(int i=0;i<connResults.size();i++){
String ssid=connResults.get(i).SSID;
scanResultsSSID.add(ssid);
if(ssid.contains("teste")){
System.out.println("Estou no : " + connResults.get(i).toString());
radarTextView.addKeyWord(ssid);
}
}
keywords=radarTextView.getKeyWords();
for(int j=0;j<keywords.size();j++){
String tmp=keywords.get(j);
System.out.println("this is one of the keyword : "+ tmp);
if(!scanResultsSSID.contains(tmp)){
radarTextView.removeKeyWord(tmp);
System.out.println("removed this : "+tmp);
}
}
radarTextView.show();
}
}
Я знаю, что я только добавить сеть с названием «TESTE», но это название Wi-Fi на одном из моих телефонов, которые я пробовал. Если я отключу его, он не будет удален с другого телефона.
показать код. –
Уже добавлен код –
Возможно, это то, чего вы пытаетесь достичь http://stackoverflow.com/a/16487291/5545429 –