Android 实时监听获取系统 Wifi 列表 (1),android 开发基础知识
}
/**
扫描附近 wifi
*/
public static List<ScanResult> scanWifiInfo(Context context) {
WifiManager mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
List<ScanResult> mWifiList = new ArrayList<>();
mWifiList.clear();
if (!mWifiManager.isWifiEnabled()) {
mWifiManager.setWifiEnabled(true);
}
mWifiList = mWifiManager.getScanResults();
LogUtil.d(TAG, "mWifiList size :" + mWifiList.size());
return mWifiList;
}
}
Activity 中使用 TimerTask 和 BroadcastReciver 去轮询这两个方法:
public class ChooseWifiActivity extends BaseActivity{
private Timer timer;
private TimerTask timerTask;
private List<ScanResults> wifiResultList = new ArrayList<>();
@Override
public void initData() {
...
startTimeTask();
registerWifiReceiver();
}
private void startTimeTask() {
if (timer == null) {
timer = new Timer();
}
if
《Android 学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享
(timerTask == null) {
timerTask = new TimerTask() {
@Override
public void run() {
WifiUtil.scanStart(ChooseWifiActivity .this);
}
};
}
timer.schedule(timerTask, 0, 5 * 1000);
}
@Override
protected void onDestroy() {
super.onDestroy();
if (timer != null) {
timer.purge();
timer.cancel();
timer = null;
}
this.unregisterReceiver(wifiReceiver);
}
@Override
public void finish() {
EventBus.getDefault().post(new DeviceNotFoundGoBackEvent());
EventBus.getDefault().post(new FinishNetWorkEvent());
super.finish();
}
private void registerWifiReceiver() {
//注册广播
wifiReceiver = new WifiBroadcastReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);//监听 wifi 是开关变化的状态
filter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);//监听 wifi 连接状态广播,是否连接了一个有效路由
filter.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);//监听 wifi 列表变化(开启一个热点或者关闭一个热点)
this.registerReceiver(wifiReceiver, filter);
}
//监听 wifi 状态
public class WifiBroadcastReceiver extends BroadcastReceiver {
@Override
重要知识点
下面是有几位 Android 行业大佬对应上方技术点整理的一些进阶资料。

高级进阶篇——高级 UI,自定义 View(部分展示)
UI 这块知识是现今使用者最多的。当年火爆一时的 Android 入门培训,学会这小块知识就能随便找到不错的工作了。不过很显然现在远远不够了,拒绝无休止的 CV,亲自去项目实战,读源码,研究原理吧!

面试题部分合集
评论