android 跳转到当前应用的详情、设置页面
分析三方权限申请源码时,发现不错的逻辑,做个记录:Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS).setData(Uri.fromParts("package", getPackageName(), null));intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TAS
·
分析三方权限申请源码时,发现不错的逻辑,做个记录:
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
.setData(Uri.fromParts("package", getPackageName(), null));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
可以结合权限申请使用上面的方法:
public void onRequestPermissionsResult(int requestCode,
@NonNull String[] permissions,
@NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if(requestCode == 10000){
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(MainActivity.this,"同意",0).show();
} else if (grantResults[0] == PackageManager.PERMISSION_DENIED) {
boolean showRationale = ActivityCompat.shouldShowRequestPermissionRationale(this, permissions[0]);
if (!showRationale) {
//拒绝后,点击"不在显示"
new AppSettingsDialog.Builder(this).build().show();
Toast.makeText(MainActivity.this,"打开设置页面",0).show();
}else{
//提示用户
}
//showRationale 值说明
//1,没有申请过权限,申请就是了,所以返回false;
// 2,申请了用户拒绝了,那你就要提示用户了,所以返回true;
// 3,用户选择了拒绝并且不再提示,那你也不要申请了,也不要提示用户了,所以返回false;
// 4,已经允许了,不需要申请也不需要提示,所以返回false;
}
}
}
发现一些博客总结的也挺全:
更多推荐
已为社区贡献3条内容
所有评论(0)