这段时间在学习一下WiFi开发这个模块,果然自己摸索处处都是坑。
今天就对Android WiFi开发的学习来个小结:
1、 一般正常的项目开发中,是使用广播来监听WiFi的状态的
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.net.wifi.STATE_CHANGE");
intentFilter.addAction("android.net.wifi.WIFI_STATE_CHANGED");
intentFilter.addAction("android.net.wifi.SCAN_RESULTS");
通过添加上面的action来监听,其中WIFI_STATE_CHANGED这个是WiFi的状态改变广播,通过它可以判断WiFi是否可用: WIFI_STATE_DISABLED WIFI网卡不可用 WIFI_STATE_DISABLING WIFI网卡正在关闭 WIFI_STATE_ENABLED WIFI网卡可用 WIFI_STATE_ENABLING WIFI网卡正在打开 WIFI_STATE_UNKNOWN WIFI网卡状态不可知
SCAN_RESULTS 这个广播可以知道scan是否已经成功扫面到了WiFi的信息。(我就是一直在这里卡住了,一开始没有判断,然后老是搜索到了空的数据,显示不出来)。
if (intent.getAction().equals(
WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) {
wifiList = wifiManager.getScanResults();
myAdapter = new WifiAdapter(MainActivity.this, wifiList);
wifiListView.setAdapter(myAdapter);
}else if (intent.getAction()
.equals(WifiManager.WIFI_STATE_CHANGED_ACTION)) {
int wifiState = intent.getIntExtra(
WifiManager.EXTRA_WIFI_STATE, 0);
switch (wifiState) {
case WifiManager.WIFI_STATE_ENABLED:
// myAdapter.notifyDataSetChanged();
wifiManager.startScan();
break;
default:
break;
}
}
详细的代码我就不给出来了,或许可以看看这个网址的:https://zhidao.baidu.com/question/2078364581341380188.html
也可以百度吧,一大堆。