没有找到处理 Intent 的活动:android.intent.action.EDIT

Posted

技术标签:

【中文标题】没有找到处理 Intent 的活动:android.intent.action.EDIT【英文标题】:No Activity found to handle Intent : android.intent.action.EDIT 【发布时间】:2021-11-24 14:04:57 【问题描述】:

我想在选择图像或通过相机拍摄后打开裁剪意图。

画廊:

Intent cropIntent = new Intent("android.intent.action.EDIT");
        cropIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        cropIntent.setDataAndType(file, "image/*");
        cropIntent.putExtra("crop", "true");
        cropIntent.putExtra("aspectX", 1);
        cropIntent.putExtra("aspectY", 1);
        cropIntent.putExtra("outputX", 256);
        cropIntent.putExtra("outputY", 256);
        cropIntent.putExtra("return-data", true);
        startActivityForResult(cropIntent, CROP_PIC);

相机:

  Intent cropIntent = new Intent("android.intent.action.EDIT");
        cropIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        File file = new File(filePath);
        Log.i("checker", "does " + file.getAbsolutePath() + " exist ?" + file.exists());
        Uri uri = Uri.fromFile(file);
        cropIntent.setDataAndType(uri, "image/*");
        cropIntent.putExtra("crop", "true");
        cropIntent.putExtra("aspectX", 1);
        cropIntent.putExtra("aspectY", 1);
        cropIntent.putExtra("outputX", 256);
        cropIntent.putExtra("outputY", 256);
        cropIntent.putExtra("return-data", true);
        startActivityForResult(cropIntent, CROP_PIC);

它适用于大多数设备,但在 Galaxy Tab A (Android 11.0) 打开编辑意图时它会给出 例外:

android.content.ActivityNotFoundException: No Activity found to handle Intent  act=android.intent.action.EDIT dat=content://media/external/images/media/356 typ=image/* flg=0x1 (has extras) 

我正在使用此编辑意图,尽管裁剪意图就足够了,因为在 Galaxy Tab A 上,当通过图库接收图像时,图像逆时针旋转 90 度不知道为什么。所以使用编辑意图,它也不起作用。

【问题讨论】:

Intent for crop 在 android 上从来都不是一个好主意。因为有 100 家制造商拥有 1000 种不同的相机应用,而且他们的方案不一样。最好使用自己的 Cropper。有很多很棒的开源实现。 @ADM 你能解释一下为什么在 android 上裁剪意图不是一个好主意吗? 【参考方案1】:

您可以使用图像裁剪库,请查看并使用它。

https://github.com/ArthurHub/Android-Image-Cropper

https://github.com/Yalantis/uCrop

希望对你有帮助!!

【讨论】:

以上是关于没有找到处理 Intent 的活动:android.intent.action.EDIT的主要内容,如果未能解决你的问题,请参考以下文章

未找到Android活动异常:找不到处理Intent的活动

未找到处理 Intent 的活动 - android.intent.action.OPEN_DOCUMENT

未找到处理 Intent 的活动 act=android.intent.action.VIEW dat=google.navigation:q=17.399986,78.483137 pkg=com

未找到处理 Intent act=android.service.wallpaper.CHANGE_LIVE_WALLPAPER 的活动(有附加功能)

为啥 context.startActivity(intent) 没有启动活动以及如何在 android 中处理异常?

android.content.ActivityNotFoundException:未找到处理 Intent act=android.settings.USAGE_ACCESS_SETTINGS