写点什么

Android 实时监听获取系统 Wifi 列表 (1),android 开发基础知识

作者:嘟嘟侠客
  • 2021 年 11 月 27 日
  • 本文字数:1179 字

    阅读完需:约 4 分钟

}


/**


  • 扫描附近 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,亲自去项目实战,读源码,研究原理吧!



  • 面试题部分合集


本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

用户头像

嘟嘟侠客

关注

还未添加个人签名 2021.03.19 加入

还未添加个人简介

评论

发布
暂无评论
Android 实时监听获取系统Wifi列表(1),android开发基础知识