最近在做一个app,需要扫描附近的WIFI设备,结果使用 WifiManager.getScanResults(); 无法获得准确的WIFI列表,获取结果是0,但是确认自己的代码应该是没错的

经网上查询,发现在Android 6.0以后对权限进行了更细致的划分,详情见:

http://timmy6.github.io/2016/03/15/requestPermission/

简单来说,在Android 6.0以后,请求 1. WifiManager.getScanResults()  2. BluetoothDevice.ACTION_FOUND  3. BluetoothLeScanner.startScan() 均需要ACCESS_FINE_LOCATION 或者 ACCESS_COARSE_LOCATION权限,但这两个权限被sdk 23以上的版本判断为dangerous permission,所以需要用户手动授权

因此解决办法就是把sdk版本更改为23以下的或者启动时主动申请权限

小广告:关于获取西普实验吧所有Writeup请点击这里查看索引

查看所有Flag需要付费,需要获取所有Flag的童鞋请访问这里成为付费用户,可以自助把自己的注册邮箱加入网站白名单,即可免回复看到本站所有Flag

Flag大全地址:所有Flag

PS:本站不是实验吧的官方站点,纯粹是个人博客,收取Flag费用仅是维持服务器费用,做站不易,且行窃珍惜,如果喜欢我的博客,愿意捐赠的,可以扫描下面的二维码

微信二维码:
支付宝二维码: