Android选择器从Google Photos选超73张图返回RESULT_CANCELLED如何解决?
问题:Google Photos通过ACTION_GET_CONTENT选择74张及以上图片返回RESULT_CANCELLED
现象说明
- 开发的Android应用提供图片选择功能,通过兼容
ACTION_GET_CONTENT的内容选择器选取图片 - 从Google Photos选择73张及以下图片时,可正常返回并完成图片下载处理,支持单个Uri或多个ClipData
- 从Google Photos选择74张及以上图片时,会直接返回应用(未触发图片下载),Activity结果码为
Activity.RESULT_CANCELLED,返回数据为ActivityResult{resultCode=RESULT_CANCELED, data=null} - 从本地存储选择任意数量图片均能正常返回处理
- 应用支持接收分享Intent,通过该方式可接收Google Photos发起分享的最多200张图片(Google Photos单次分享上限为200张)
相关代码
打开图片选择器的实现
... someActivityResultLauncher = registerForActivityResult( new ActivityResultContracts.StartActivityForResult(), new ChooserActivityResult(this, this.getBaseContext())); ... /** * Open image chooser. */ public void openImageChooser() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); someActivityResultLauncher.launch(Intent.createChooser(intent, getString(R.string.intent_chooser_select_images))); }
Activity结果处理代码(ChooserActivityResult)
@Override public void onActivityResult(ActivityResult result) { HashSet<Uri> sources = new HashSet<>(); if (result.getResultCode() == Activity.RESULT_OK) { //do stuff with the Uri(s) } }
排查情况
- 应用未抛出任何异常,识别到
Activity.RESULT_CANCELLED后按预期不执行后续操作 - 查看Logcat,未发现与Google Photos相关的明显报错或提示日志
- 测试设备:Google Pixel 6a(已覆盖debug和release版本)
后续更新
- 2022-10-24:制作了可复现问题的简易测试应用
- 2022-10-25:已向Google提交Bug报告
需求
推测Google Photos对ACTION_GET_CONTENT返回的图片数量存在隐性限制,希望获取相关解决思路。
内容的提问来源于stack exchange,提问作者cedarrapidsboy
相关产品推荐
相关产品推荐

