2016-09-01 2 views
0

私は利用可能なネットワークをスキャンするためのブロードキャスト受信機を持っています。通常のコードは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の名前であることを知っています。私はそれをオフにすると、それは他の携帯電話から削除されません。

+0

ようTimerTask

を使用すると、あなたのコードを示しています。 –

+0

すでに –

+0

というコードが追加されている可能性があります。これはあなたが達成しようとしているものです。http://stackoverflow.com/a/16487291/5545429 –

答えて

1

この

Timer timer = new Timer(); 
int DELAY=0; 
int INTERVAL=10000;       

timer.scheduleAtFixedRate(new TimerTask() { 
     @Override 
     public void run() { 
      connResults = wifimanager.getScanResults(); 
     } 
    },DELAY,INTERVAL); 
+0

これは良い選択です。私はちょうど私がやっているので、古いデバイスのための軽いバージョンですので、私のアプリのためにそれはあまりにも消費されることを心配しています。 私はそれをテストしようとしていますが、あまりにも消費していない場合、私はあなたの答えを間違いなく受け入れます。 ご協力いただきありがとうございます! –

+0

お手伝いします:) –

関連する問題