@OnClick(R.id.to_camear_btn) public void onClick() { // checkSelfPermission 检测有没有 权限 // PackageManager.PERMISSION_GRANTED 有权限 // PackageManager.PERMISSION_DENIED 拒绝权限 if(ActivityCompat.checkSelfPermission(this,Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED){ //权限发生了改变 true // false 小米 if(ActivityCompat.shouldShowRequestPermissionRationale(this,Manifest.permission.CAMERA)){ new AlertDialog.Builder(this).setTitle("title") .setPositiveButton("ok", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 请求授权 ActivityCompat.requestPermissions(PermissionActivity.this,new String[]{Manifest.permission.CAMERA},1); } }).setNegativeButton("cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }).create().show(); }else { ActivityCompat.requestPermissions(PermissionActivity.this,new String[]{Manifest.permission.CAMERA},1); } }else{ camear(); } } /** * * @param requestCode * @param permissions 请求的权限 * @param grantResults 请求权限返回的结果 */ @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if(requestCode == 1){ // camear 权限回调 if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){ // 表示用户授权 Toast.makeText(this, " user Permission" , Toast.LENGTH_SHORT).show(); camear(); } else { //用户拒绝权限 Toast.makeText(this, " no Permission" , Toast.LENGTH_SHORT).show(); } } } public void camear(){ try { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent,1); } catch (Exception e) { e.printStackTrace(); } }
Android照相机动态权限
最新推荐文章于 2024-06-24 08:40:03 发布