2016-08-17 14 views
0

私はScanResultのリストを取得しようとしていますが、成功することはありません。ここに添付Androidで利用できるWIFIネットワークの一覧を表示

は私のコードです:

public class listenerActivity extends AppCompatActivity { 
    String netSsid; 
    ListView groups; 
    EditText filter; 
    WifiManager wifi; 
    String wifis[]; 
    WifiScanReceiver wifiReciever; 
    Button refreshGroups; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_listener); 
     groups = (ListView) findViewById(R.id.listView); 
     wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
     if (wifi.isWifiEnabled() == false){ 
      Toast.makeText(getApplicationContext(), "wifi is disabled. making it enabled", Toast.LENGTH_LONG).show(); 
      wifi.setWifiEnabled(true); 
     } 
     wifiReciever = new WifiScanReceiver(); 
     registerReceiver(wifiReciever, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)); 
     wifi.startScan(); 
    } 

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

     for(int i = 0; i < wifiScanList.size(); i++) { 
       wifis[i] = wifiScanList.get(i).toString(); 
     } 
     groups.setAdapter(new ArrayAdapter<String>(getApplicationContext(), R.layout.adapte_layout, (wifiScanList.size() > 0 ? wifis : new String[]{"No net available"}))); 
    } 
} 

そして、ここに私のmanifest.xml(権限の一部)で:

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> 
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.WRITE_SETTINGS" /> 

これは動作しません。

私はあなたの助けを非常にうれしく思います(そして、私の英語はすみません)。 ありがとうございます!

+0

問題は何ですか?何も返さないだけですか?もっと明示してください。あなたは期待どおりに動くはずの視点から何を検証しましたか? – JoxTraex

答えて

0

最初は、あなたは全く結果を得ていないと思っていました。
しかし、あなたのコードはScanResultを取得しても問題ありません。唯一の問題はあなたのArrayAdapterにあります。レイアウトxmlを添付していないので、何が正確に動作していないのかを知ることは難しいです。
とにかく私はアダプタのデフォルトレイアウトを使用しています。画面に結果を表示するために変更する必要のあるコードは次のとおりです

groups.setAdapter(new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, (wifiScanList.size() > 0 ? wifis : new String[]{"No net available"}))); 
関連する問題