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" />
这是行不通的。
我会非常高兴你的帮助(我对我的英语感到抱歉)。 谢谢!
问题是什么?它只是没有返回任何东西。请更加明确。你从什么角度验证了它应该如预期的那样工作? – JoxTraex