public classPremissionActivity extends AppCompatActivity {private static final int REQUEST_CAMERA_PERMISSION = 0x103;private static final int REQUEST_PRE_SET = 0x104;
@Overrideprotected voidonCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.e("PNH", "PremissionActivity启动savedInstanceState=" +savedInstanceState);if (null !=savedInstanceState) {
Intent intent= new Intent(this, LanchActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
}
setContentView(R.layout.activity_premission);
findViewById(R.id.camera).setOnClickListener(newView.OnClickListener() {
@Overridepublic voidonClick(View v) {if (ContextCompat.checkSelfPermission(PremissionActivity.this, Manifest.permission.CAMERA) !=PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(PremissionActivity.this, newString[]{Manifest.permission.CAMERA}, REQUEST_CAMERA_PERMISSION);
}
}
});
findViewById(R.id.contact).setOnClickListener(newView.OnClickListener() {
@Overridepublic voidonClick(View v) {//检查是否已经具有权限
if (ContextCompat.checkSelfPermission(PremissionActivity.this, Manifest.permission.READ_CONTACTS)!=PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(PremissionActivity.this, new String[]{Manifest.permission.READ_CONTACTS}, 3);
}
}
});
}
@Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);if (requestCode ==REQUEST_CAMERA_PERMISSION) {if (grantResults.length > 0 && grantResults[0] ==PackageManager.PERMISSION_GRANTED) {
}else{//权限拒绝
openAppSetting();
}
}
}protected voidopenAppSetting() {
MaterialDialog materialDialog= new MaterialDialog.Builder(this)
.content("在设置-应用-GcsSloop-权限中开启相机权限,以正常使用拍照、小视频、扫一扫等功能")
.positiveText("去设置")
.negativeText("取消")
.onNegative(newMaterialDialog.SingleButtonCallback() {
@Overridepublic voidonClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
}
})
.onPositive(newMaterialDialog.SingleButtonCallback() {
@Overridepublic voidonClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {//Intent intent = new Intent("/");//ComponentName cm = new ComponentName("com.android.settings","com.android.settings.ManageApplications");//intent.setComponent(cm);//intent.setAction("android.intent.action.VIEW");//startActivityForResult( intent , 0);//打开权限设置界面
Intent intent = newIntent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.setData(Uri.parse("package:" +getPackageName()));//申请权限返回执行
startActivityForResult(intent, REQUEST_PRE_SET);
}
}).build();
materialDialog.show();
}
}