我有一个广播接收器来扫描可用的网络,你可以在StackOverflow上轻松找到正常的代码 .
我在布局上为每个可用网络添加一个图标,问题是当网络被删除时,它仍会显示它 .
问题是对于这个广播接收器,它正在侦听的动作/意图是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”的网络,但这是我测试的一部手机上的wifi名称 . 如果我关闭它,它不会从另一部手机中删除 .
1 回答
使用TimerTask
像这样