在android 8.0 及以前的版本中, 获取定位权限在清单文件中获取就行了, 9.0需要在代码中再次动态获取一次,而且网络权限和GPS权限都需要获取,8.0还可以只获取网络权限就可以了, 9.0只获取网络权限的话也可以使用定位等功能, 但是需要GPS的功能就不能用了,比如获取海拔高度和测速,有些人可能用不到这样的数据以至于一直以来没有人去发现这个问题
if (ContextCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED || ContextCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED || ContextCompat.checkSelfPermission(mContext, Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) {
//请求权限
ActivityCompat.requestPermissions(this, new String [{Manifest.permission.ACCESS_COARSE_LOCATION,Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.RECORD_AUDIO}, MY_PERMISSIONS_REQUEST_ACCESS_COARSE_LOCATION);
if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_CONTACTS)) {
Toast.makeText(this, "shouldShowRequestPermissionRationale", Toast.LENGTH_SHORT).show();
}
}
ACCESS_COARSE_LOCATION : 网络定位权限;
ACCESS_FINE_LOCATION : GPS定位权限
网友评论