在android 6.0 以后的系统需要用户在使用的过程中进行动态的授权,比如
<!--请求访问使用照相设备--> <uses-permission android:name="android.permission.CAMERA" />
如果没有这么做那你可能会遇到一个异常
java.lang.SecurityException: Permission Denial: starting Intent { act=android.media.action.IMAGE_CAPTURE flg=0x3 cmp=com.sec.android.app.camera/.Camera clip={text/uri-list U:file:///storage/emulated/0image/1493198673138.png} (has extras) } from ProcessRecord{2a79023 316:com.***.***/u0a233} (pid=316, uid=10233) with revoked permission android.permission.CAMERA
private void onSelectCategory(){ if (Build.VERSION.SDK_INT >= 23) { int checkCallPhonePermission = ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CAMERA); if(checkCallPhonePermission != PackageManager.PERMISSION_GRANTED){ ActivityCompat.requestPermissions(MainActivity.this,new String[]{Manifest.permission.CAMERA},0); return; }else{ takePhoto(); } } else { takePhoto(); } } @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { switch (requestCode) { case 0: if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { // Permission Granted takePhoto(); } else { // Permission Denied Toast.makeText(MainActivity.this, "这一刻你拒绝了我。", Toast.LENGTH_SHORT) .show(); } break; default: super.onRequestPermissionsResult(requestCode, permissions, grantResults); } }
本文介绍了在Android 6.0及以上版本中如何处理动态权限请求的问题,特别是针对相机权限(CAMERA)的实现方式。文章通过示例代码详细解释了如何检查权限状态、请求权限及处理权限被拒绝的情况。
9729

被折叠的 条评论
为什么被折叠?



