【问题标题】:No Activity found to handle Intent { act=android.intent.action.PICK dat=content://media/external/images/media }未找到处理 Intent { act=android.intent.action.PICK dat=content://media/external/images/media } 的 Activity
【发布时间】:2017-08-16 15:40:38
【问题描述】:

在我的应用中,我让用户从他们的图库中挑选一张照片。 我使用这样的意图:

Intent pickPictureIntent = new Intent(Intent.ACTION_PICK,
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

在我开始这个意图之前,我会检查是否有任何应用程序可以处理它:

if (pickPictureIntent.resolveActivity(getActivity().getPackageManager()) != null) {
    startActivityForResult(pickPictureIntent, SELECT_PICTURE_FROM_GALLERY_REQUEST_CODE);
}

但我的两个用户在尝试从他们的图库中挑选照片时遇到此异常:

Exception android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.PICK dat=content://media/external/images/media }

据我所知,当没有活动来处理意图时会发生这种情况,但正如您所见,我检查了在我的代码中没有活动来处理意图的可能性。

【问题讨论】:

    标签: android android-intent


    【解决方案1】:

    试试这个:

    Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE);
    

    这会打开 Documents 应用程序。让用户也可以使用他们可能已安装的任何图库应用:

    Intent getIntent = new Intent(Intent.ACTION_GET_CONTENT);
    getIntent.setType("image/*");
    
    
    Intent pickIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
    pickIntent.setType("image/*");
    
    Intent chooserIntent = Intent.createChooser(getIntent, "Select Image");
    chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[] {pickIntent});
    
    startActivityForResult(chooserIntent, PICK_IMAGE);
    

    【讨论】:

    • 您确定这段代码根本不会发生 ActivityNotFoundException 吗?
    • 这段代码不应该出现ActivityNotFoundException
    • 为了补充答案,AS 目前警告说使用 pickIntent.setType 会覆盖上一行中所做的事情,因此对这个答案的改进是它使用:pickIntent.setDataAndType(android.provider. MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
    • 如果你想知道 PICK_IMAGE 来自哪里...stackoverflow.com/a/5309217/1174169
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-20
    • 2021-03-09
    相关资源
    最近更新 更多