美文网首页
java.lang.SecurityException: Per

java.lang.SecurityException: Per

作者: 流水潺湲 | 来源:发表于2018-05-17 15:43 被阅读29次

这个问题一般是相机权限没有打开,在调相机之前做一次判断是否打开相机权限

java.lang.SecurityException: Permission Denial: starting Intent { 
act=android.media.action.IMAGE_CAPTURE flg=0x3 cmp=com.android.camera/.Camera clip={text/uri-list 
U:file:///storage/emulated/0/DCIM/faceImage.jpg} (has extras) } from ProcessRecord{8e8685f 
18652:com.jyfair.jxs/u0a179} (pid=18652, uid=10179) with revoked permission 
android.permission.CAMERA
    at android.os.Parcel.readException(Parcel.java:1620)
    at android.os.Parcel.readException(Parcel.java:1573)
    at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:2682)
    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1509)
    at android.app.Activity.startActivityForResult(Activity.java:3978)
    at android.app.Activity.startActivityForResult(Activity.java:3939)
    at com.jyfair.activity.person.PersonInfoActivity$7.onOperItemClick(PersonInfoActivity.java:471)
    at com.jyfair.view.dialog.ActionSheetDialog$2.onItemClick(ActionSheetDialog.java:257)
    at android.widget.AdapterView.performItemClick(AdapterView.java:310)
    at android.widget.AbsListView.performItemClick(AbsListView.java:1145)
    at android.widget.AbsListView$PerformClick.run(AbsListView.java:3081)
    at android.widget.AbsListView$3.run(AbsListView.java:3947)
    at android.os.Handler.handleCallback(Handler.java:742)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:154)
    at android.app.ActivityThread.main(ActivityThread.java:5524)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:740)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:630)

android6.0权限管理

在开发中很多用到手机拍照选择图片,在低版本中只要在AndroidManifest.xml中声明

<uses-permissionandroid:name="android.permission.CAMERA" />

即可,但是在6.0手机上运行就会直接挂掉,提示

Permission Denial: starting Intent {act=android.media.action.IMAGE_CAPTURE.....with revoked 
permission android.permission.CAMER

只要在代码中进行权限判断就好了,可以直接在主activity中或者在具体用到权限的地方。


if(ContextCompat.checkSelfPermission( activity,Manifest.permission.CAMERA)!= PackageManager.PERMISSION_GRANTED) 
{ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.CAMERA},
1);
}

在activity中重写onRequestPermissionsResult方法,具体如下

@Override
public void onRequestPermissionsResult
(int requestCode,String[] permissions, int[] grantResults) {
if(requestCode == 1) {
      if(grantResults[0] == PackageManager.PERMISSION_GRANTED) {
      //权限获取成功
       }else{
       //权限被拒绝
       }
  }

相关文章

网友评论

      本文标题:java.lang.SecurityException: Per

      本文链接:https://www.haomeiwen.com/subject/tmeiaxtx.html