1.wifiManager.startScan()
使用前需要同时开启设备的定位服务和软件的定位权限&&wifi权限,否则扫描会一直返回false
设备的定位服务是否开启判断方法是:
fun locationable() : Boolean {
val lm = getSystemService(Context.LOCATION_SERVICE) as LocationManager
return lm.isLocationEnabled
}
wifi权限包括:
android.Manifest.permission.ACCESS_WIFI_STATE
android.Manifest.permission.CHANGE_WIFI_STATE
android.Manifest.permission.ACCESS_FINE_LOCATION
android.Manifest.permission.ACCESS_COARSE_LOCATION
2.应用在后台获取当前连接的wifi的bssid为02:00:00:00:00:00
从android10 起,google对权限进行了收紧 ,具体说明如上图。由于获取wifi信息也需要用到位置信息,所以我们需要进行调整适配:
由于我们是在后台运行,所以声明一个前台服务,并设置类型为location即可
<service android:name=".xxxService"
android:foregroundServiceType="location"/>