Android Studio 未找到可处理Intent act=android.provider.action.PICK_IMAGES的Activity

8xiog9wr  于 2023-05-23  发布在  Android
关注(0)|答案(1)|浏览(215)

我更新targetversion从28到33,我需要使用图片选择器,当Build.VERSION.SDK_INT高于S_V2时,使用action MediaStore.ACTION_PICK_IMAGES,否则使用Intent.ACTION_PICK。我把它提取到一个工具中。但当我在项目的其他地方使用它时。有时它是工作的,但有时我会得到一个异常。
android.content.ActivityNotFoundException:未找到可处理Intent { act=android.provider.action.PICK_IMAGES cat=[android.intent.category.DEFAULT] dat=content://media/...类型=图像/* }
我不明白为什么,我该怎么办?这是我的代码:

Intent intent = new Intent();
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.S_V2){
intent.setAction(MediaStore.ACTION_PICK_IMAGES);
} else {
intent.setAction(Intent.ACTION_PICK);
}
intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
activity.startActivityForResult(intent, requestCode);
rslzwgfq

rslzwgfq1#

把你的代码放到一个try-catch块中,如下所示:

try {
       Intent intent = new Intent();
       if (Build.VERSION.SDK_INT > Build.VERSION_CODES.S_V2) {
           intent.setAction(MediaStore.ACTION_PICK_IMAGES);
       } else {
           intent.setAction(Intent.ACTION_PICK);
       }
       intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
       activity.startActivityForResult(intent, requestCode);
   } catch (ActivityNotFoundException ex) {
       e.printStackTrace();
   }

如果这不起作用,请尝试使用下面的Intent代码,

Intent intent = new Intent(this, class);

相关问题