1.动态权限申请
模糊的位置信息android.permission.ACCESS_COARSE_LOCATION权限为例
在AndroidManifest文件中加入权限
然后java代码中动态申请
//动态申请权限的测试方法
public void test() {
// 要申请的权限 数组 可以同时申请多个权限
String[] permissions = {Manifest.permission.ACCESS_COARSE_LOCATION};
if (Build.VERSION.SDK_INT >= 23) {
//如果超过6.0才需要动态权限,否则不需要动态权限
//如果同时申请多个权限,可以for循环遍历
int check = ContextCompat.checkSelfPermission(this,permissions[0]);
// 权限是否已经 授权 GRANTED---授权 DINIED---拒绝
if (check == PackageManager.PERMISSION_GRANTED) {
//写入你需要权限才能使用的方法
run();
} else {
//手动去请求用户打开权限(可以在数组中添加多个权限) 1 为请求码 一般设置为final静态变量
requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, 1);
}
} else {
//写入你需要权限才能使用的方法
run();
}
}
其中run()为你自己需要权限才能执行的方法
然后重写申请权限的回掉方法
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
//回调,判断用户到底点击是还是否。
//如果同时申请多个权限,可以for循环遍历
if (requestCode == 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
//写入你需要权限才能使用的方法
run();
} else {
// 没有获取 到权限,从新请求,或者关闭app
Toast.makeText(this,"需要获得XXX权限",Toast.LENGTH_SHORT).show();
}
}
2.跳转GPS设置界面
相关字符串
提示
当前应用缺少必要权限。\n\n请点击\"设置\"-\"权限\"-