Android 8.1之后WIFI getScanResult()、 getSSID()需要 获取位置权限以及 打开定位
添加权限
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
动态获取
/**
* 获取位置权限
*/
public void getLocatePermission() {
if (Build.VERSION.SDK_INT >= 27) {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION)
!= PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION},
1);
} else {
if(Build.VERSION.SDK_INT >= 27)// android 8.1
if(checkLocationIsClose()){
openLocation();
}
}
}
}
@overide
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if(requestCode == 1){
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
if(checkLocationIsClose()){
openLocation();
}
}
}
//检测定位是否打开
public boolean checkLocationIsClose() {
LocationManager mLocationManager = (LocationManager)getSystemService(LOCATION_SERVICE);
if(!mLocationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
return true;
}
}
//跳转到系统定位开关设置
public void openLocation() {
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivityForResult(intent, 887);
}