2016-07-09 31 views
-1

Gibt es eine Möglichkeit, eine App zu erstellen, die immer Wifi scannt und nie aufhört zu überprüfen. Wenn ja, tötet es die Batterie nicht schnell?
Kann mir jemand eine gute Referenz zeigen, die nach WLAN sucht und sie in einer Listenansicht auflistet?
Ich habe versucht, diese Android Wi-Fi Tutorial Website, aber es funktioniert nicht für mich.Immer nach WiFi suchen Android

Und das ist, was ich tue:

package com.example.amire.yadavar; 

import android.app.Activity; 
import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.content.IntentFilter; 
import android.net.wifi.ScanResult; 
import android.net.wifi.WifiManager; 
import android.os.Bundle; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 

import java.util.List; 

public class MainActivity extends Activity { 
    private ListView lv; 
    private WifiManager wifi; 
    private WifiScanReceiver wifiReciever; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     lv=(ListView)findViewById(R.id.listView); 

     wifi=(WifiManager)getSystemService(Context.WIFI_SERVICE); 
     wifiReciever = new WifiScanReceiver(); 
     wifi.startScan(); 
    } 

    protected void onPause() { 
     unregisterReceiver(wifiReciever); 
     super.onPause(); 
    } 

    protected void onResume() { 
     registerReceiver(wifiReciever, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)); 
     super.onResume(); 
    } 


    private class WifiScanReceiver extends BroadcastReceiver{ 
     public void onReceive(Context c, Intent intent) { 
      List<ScanResult> wifiScanList = wifi.getScanResults(); 
      String[] wifis = new String[wifiScanList.size()]; 

      for(int i = 0; i < wifiScanList.size(); i++){ 
       wifis[i] = ((wifiScanList.get(i)).toString()); 
      } 
      lv.setAdapter(new ArrayAdapter<>(getApplicationContext(),android.R.layout.simple_list_item_1, wifis)); 
     } 
    } 
} 
+0

ich meine Antwort gefunden hatte, dieser Code nicht funktioniert, weil ich API 23 verwendet wurde und in AndroidManifest ich hinzufügen, musste damit der Code funktioniert –

Antwort

0

wenn die Androidsystem Ihre Sendung Empfänger kommunizieren nd die onRecieve Schnittstelle laufen sollten Sie startActivity Methode in onRecieve aufrufen und die WifiActivity starten und die Scan-Ergebnisse und übergeben es an ListView durch Aufruf von setAdapter. Dies funktioniert :)