1818import com .hjq .demo .permission .PermissionInterceptor ;
1919import com .hjq .permissions .XXPermissions ;
2020import com .hjq .permissions .permission .PermissionLists ;
21+ import com .hjq .permissions .permission .base .IPermission ;
2122import java .io .File ;
2223import java .text .SimpleDateFormat ;
24+ import java .util .ArrayList ;
2325import java .util .Date ;
26+ import java .util .List ;
2427import java .util .Locale ;
2528
2629/**
@@ -42,10 +45,18 @@ public static void start(@NonNull BaseActivity activity, @Nullable OnCameraListe
4245
4346 @ Log
4447 public static void start (@ NonNull BaseActivity activity , boolean video , @ Nullable OnCameraListener listener ) {
48+ List <IPermission > permissions = new ArrayList <>();
49+ permissions .add (PermissionLists .getCameraPermission ());
50+ if (!AndroidVersion .isAndroid11 ()) {
51+ permissions .add (PermissionLists .getReadExternalStoragePermission ());
52+ permissions .add (PermissionLists .getWriteExternalStoragePermission ());
53+ }
4554 XXPermissions .with (activity )
46- .permission ( PermissionLists . getCameraPermission () )
55+ .permissions ( permissions )
4756 .interceptor (new PermissionInterceptor ())
4857 .description (new PermissionDescription ())
58+ // 设置不触发错误检测机制
59+ .unchecked ()
4960 .request ((grantedList , deniedList ) -> {
5061 boolean allGranted = deniedList .isEmpty ();
5162 if (!allGranted ) {
@@ -110,8 +121,14 @@ protected void initData() {
110121 intent .setAction (MediaStore .ACTION_IMAGE_CAPTURE );
111122 }
112123
124+ List <IPermission > permissions = new ArrayList <>();
125+ permissions .add (PermissionLists .getCameraPermission ());
126+ if (!AndroidVersion .isAndroid11 ()) {
127+ permissions .add (PermissionLists .getReadExternalStoragePermission ());
128+ permissions .add (PermissionLists .getWriteExternalStoragePermission ());
129+ }
113130 if (intent .resolveActivity (getPackageManager ()) == null ||
114- !XXPermissions .isGrantedPermission (this , PermissionLists . getCameraPermission () )) {
131+ !XXPermissions .isGrantedPermissions (this , permissions )) {
115132 setResult (RESULT_ERROR , new Intent ().putExtra (INTENT_KEY_OUT_ERROR , getString (R .string .camera_launch_fail )));
116133 finish ();
117134 return ;
0 commit comments