wifi扫描流程图_一次完整的WIFI扫描过程

本文详细介绍了在Android系统中进行WiFi扫描所需的权限,包括Android 8和9的不同要求,以及扫描频率的限制。扫描步骤包括注册广播监听、启动扫描、获取结果,并在扫描成功或失败时进行相应处理。同时,文章提供了一个按信号强度排序扫描结果的示例代码。
摘要由CSDN通过智能技术生成

权限

在android 8上,一次成功的WifiManager.startScan()调用需要有以下权限中的任意一个,如果一个权限都没有则会报SecurityException的异常。

ACCESS_FINE_LOCATION

ACCESS_COARSE_LOCATION

CHANGE_WIFI_STATE

而Android 9开始,一次成功的WifiManager.startScan()调用必须包含以下的所有权限,WifiManager.getScanResults()的调用同样序言这些权限。如果这些权限没有全部包含则会报SecurityException的异常。

ACCESS_FINE_LOCATION 或者ACCESS_COARSE_LOCATION权限

CHANGE_WIFI_STATE权限

位置(设置>位置)权限的获取

扫描频次的限制

Android 8 上每个后台应用可以每隔半小时扫描一次;而Android 9 每个前台应用可以两分钟内扫描四次,允许了短时间快速扫描,每个后台应用可以半小时扫描一次。

扫描步骤

1、注册SCAN_RESULTS_AVAILABLE_ACTION的广播监听,这个监听会在扫描完成的时候返回成功或者失败的状态。

2、调用WifiManager.startScan()开始扫描,要检查一下返回的状态,有可能会失败,比如说短时间内过多次扫描、设备问题、WIFI硬件返回异常等。

boolean success = wifiManager.startScan();

if (!success) {

// scan failure handling

scanFailure(null);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值