私は利用可能なネットワークをスキャンするためのブロードキャスト受信機を持っています。通常のコードは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();
}
}
私は名前だけ「精巣」でネットワークを追加していますがそれは、私はこれをテストしてい私の携帯電話のいずれかで無線LANの名前であることを知っています。私はそれをオフにすると、それは他の携帯電話から削除されません。
ようTimerTask
を使用すると、あなたのコードを示しています。 –
すでに –
というコードが追加されている可能性があります。これはあなたが達成しようとしているものです。http://stackoverflow.com/a/16487291/5545429 –