2017-08-03 47 views
0

我想获得我的应用程序中可用的所有wifi连接列表,但我没有得到任何列表。我的无线连接正在进行,也连接到我的wifi,但我无法获得我的应用程序中的无线连接列表。 谁能告诉我为什么这样?这里是我的代码:如何获取所有可用的wifi连接列表?

MainActivity.java

public class MainActivity extends AppCompatActivity implements View.OnClickListener{ 
    WifiManager wm; 
    ToggleButton tb; 
    ArrayAdapter<String> aa; 
    ListView l; 
    private static final int ENABLE_REQUEST=1; 
    private static final int DISCOVERABLE_REQUEST=2; 
    private static final int DISCOVERABLE_DURATION=120; 

    BroadcastReceiver br=new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      String action=intent.getAction(); 
      if(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION.equals(action)) { 
       List<ScanResult> hotspot= wm.getScanResults(); 

       for(int i=0;i<hotspot.size();i++) { 
        aa.add(hotspot.get(i).toString()); 
       } 
      } 
     } 
    }; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     tb= (ToggleButton) findViewById(R.id.toggle); 
     aa=new ArrayAdapter(this,android.R.layout.simple_list_item_1); 
     l= (ListView) findViewById(R.id.list); 
     l.setAdapter(aa); 

     wm= (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE); 
     tb.setOnClickListener(this); 
    } 

    @Override 
    public void onClick(View v) { 
     tb= (ToggleButton) v; 

     if(wm==null) { 
      Toast.makeText(this, "This feature is not supported", Toast.LENGTH_SHORT).show(); 
      tb.setChecked(false); 
     } else { 
      if (tb.isChecked()) { 
       wm.setWifiEnabled(true); 
       discover(); 
      } else { 
       wm.setWifiEnabled(false); 
      } 
     } 
    } 

    private void discover() { 

     wm.startScan(); 
     IntentFilter filter=new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION); 
     this.registerReceiver(br,filter); 
    } 
} 

的AndroidManifest.xml:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 

回答

0

我想你可能会找这个answer在另一个计算器岗位。

的答案表明,你可以得到你在mScanResults列表,你可以应用到你的ArrayAdapter最后呼吁列表视图setAdapter方法。

private final BroadcastReceiver mWifiScanReceiver = new BroadcastReceiver() { 
@Override 
public void onReceive(Context c, Intent intent) { 
    if (intent.getAction().equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) { 
     List<ScanResult> mScanResults = mWifiManager.getScanResults(); 
     // add your logic here 
    } 
} 

}

请遵循answer了解更多详情。

相关问题