当前位置: 首页 > news >正文

国内做家具外贸的网站/头条新闻 最新消息条

国内做家具外贸的网站,头条新闻 最新消息条,设计网站教程,千万别学服装设计安卓手机APP开发__Wi-Fi扫描概述 目录 概述 Wi-Fi的扫描过程 限制 权限 Android 8.0 and Android 8.1: Android 9: Android 10 (API 级别 29) 和 更高版本: 扫描频率的限制 Android 8.0 and Android 8.1: Android 9: Android 10 and higher: 概述 你能使用Wi-Fi的…

安卓手机APP开发__Wi-Fi扫描概述

目录

概述

Wi-Fi的扫描过程

限制

权限

Android 8.0 and Android 8.1:

Android 9:

Android 10 (API 级别 29) 和 更高版本:

扫描频率的限制

Android 8.0 and Android 8.1:

Android 9:

Android 10 and higher:


概述

你能使用Wi-Fi的扫描能力,通过使用Wifi管理器API来得到Wi-Fi的扫描过程.

Wi-Fi的扫描过程

在扫描的过程中有三个步骤:

为SCAN_RESULTS_AVAILABLE_ACTION注册一个广播的监听器,当扫描的请求被完成时
这个监听器被调用了,提供它们成功/失败的状态.对于运行在安卓10(API级别29)以及
更高版本,这个广播被发送到任何Wi-Fi扫描完成的设备上。APP能积极地监听所有的
扫描完成,通过使用广播。

使用WifiManager.startScan()方法请求一个扫描。确保检查方法的返回状态,因
为这个调用可能因为如下的任何一个原因而失败:
因为在短时间内有太多的扫描了,扫描请求被堵塞住了。
设备是空闲的但扫描被禁用了
Wi-Fi报告了一个扫描故障

使用WifiManager.getScanResults()方法得到扫描的结果。返回的扫描的结果是最新的
更新的结果,如果你的扫描没有完成,它可能是之前的一次的结果。这意味着
如果你在接收到一个成功的广播之前,调用了这个方法,你可能得到一个比较旧的结果。

如下的代码提供了一个例子,它是如何实现这些步骤的:


Kotlin

val wifiManager = context.getSystemService(Context.WIFI_SERVICE) as WifiManagerval wifiScanReceiver = object : BroadcastReceiver() {override fun onReceive(context: Context, intent: Intent) {val success = intent.getBooleanExtra(WifiManager.EXTRA_RESULTS_UPDATED, false)if (success) {scanSuccess()} else {scanFailure()}}
}val intentFilter = IntentFilter()
intentFilter.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)
context.registerReceiver(wifiScanReceiver, intentFilter)val success = wifiManager.startScan()
if (!success) {// scan failure handlingscanFailure()
}....private fun scanSuccess() {val results = wifiManager.scanResults... use new scan results ...
}private fun scanFailure() {// handle failure: new scan did NOT succeed// consider using old scan results: these are the OLD results!val results = wifiManager.scanResults... potentially use older scan results ...
}

限制

安卓8.0 (API 级别 26)引入了对权限的限制的允许的Wi-Fi扫描的频率的限制。

为了提升网络的性能,安全,和电池的寿命,安卓9 (API 级别 28)加强了权限请求
并且进一步地限制了Wi-Fi扫描的频率。


权限

Android 8.0 and Android 8.1:

对WifiManager.getScanResults()方法的成功的调用需要如下的权限:


    ACCESS_FINE_LOCATION
    ACCESS_COARSE_LOCATION
    CHANGE_WIFI_STATE

如果调用时没有这三个权限,这个调用是失败的,并且返回了SecurityException.

Android 9:

对WifiManager.startScan()方法的成功的调用需要如下的权限:


    你的app 有 ACCESS_FINE_LOCATION 或 ACCESS_COARSE_LOCATION 权限.
    你的 app 有 CHANGE_WIFI_STATE 权限.
    在设备上的定位服务被启用(设置〉定位)


Android 10 (API 级别 29) 和 更高版本:

对WifiManager.startScan()方法的成功的调用需要如下的权限:

    你的app 有 ACCESS_FINE_LOCATION  权限.
     你的 app 有 CHANGE_WIFI_STATE 权限.
    在设备上的定位服务被启用(设置〉定位)

对WifiManager.getScanResults()方法的成功的调用需要如下的权限:   

 你的app 有 ACCESS_FINE_LOCATION  权限.
     你的 app 有 ACCESS_WIFI_STATE 权限.
    在设备上的定位服务被启用(设置〉定位)

如果调用时没有这三个权限需求,这个调用是失败的,并且返回了SecurityException.


扫描频率的限制

在使用WifiManager.startScan()方法应用这个限制

Android 8.0 and Android 8.1:

每个后台的APP在30分钟的周期内能扫描一次。


Android 9:

每一个前台的APP在一个2分钟的周期内可以扫描4次。
所有的后台的APP放在一起,在30分钟的周期内能扫描一次。

Android 10 and higher:

限制与安卓9时是一样的,有了一个新的开发者选项,在本地测试时,可以关闭这个限制
(开发者选项〉网络〉Wi-Fi扫描限制)

http://www.bjxfkj.com.cn/article/323.html

相关文章:

  • 安徽网站推广/网站优化课程培训
  • 能被百度收录的建站网站/附近的电脑培训班在哪里
  • 手机网站怎么制作/国际重大新闻
  • 郑州网站制作免费/今天新闻头条新闻
  • 湘潭做网站价格 q磐石网络/百度一下一下你就知道
  • 邮箱注册网站查询/aso推广平台
  • 石家庄网站建设公司/搜索引擎排名google
  • 西宁手机网站微站建设/汕头网站设计公司
  • 赣州网站设计/网站如何发布
  • 关键词做网站名字/郑州百度seo网站优化
  • 汽车门户网站建设/seo视频教程百度云
  • 杭州专业设计网站/北京排名seo
  • 哪个网站可以做logo/郑州seo外包公司哪家好
  • 兰州网站建设/湖南百度seo
  • 网站程序源码下载/绍兴seo排名公司
  • 做兼职 那个网站靠谱/企业网站模板源码
  • 集团网站建设计划表百度/全网推广推荐
  • ppt模板网站下载/seo的五个步骤
  • 公司展厅设计图片/神马搜索seo优化排名
  • 连网站建设/广州seo推广服务
  • 南京网站设计是什么/百度收录关键词查询
  • 别人网站 自己的域名/网站排名seo教程
  • 怎么搭建一个完整的网站/阿里指数数据分析平台官网
  • 营销型网站建设课程/爱站网综合查询
  • 2003系统做网站/竞价账户托管公司
  • 徐州网站推广优化/免费顶级域名注册网站
  • 濮阳建设工程网站/外包公司是正规公司吗
  • 中国建设银行网站首页e路护航/网站建站系统
  • 营销师/廊坊seo管理
  • 可以做微信推文的网站/怎么样推广最有效最快速