【发布时间】:2022-01-01 04:42:31
【问题描述】:
我有一个已发布的应用程序,它使用 ACTION_GET_CONTENT 意图让用户选择他/她的一张照片。这是启动意图的代码:
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, false);
intent.putExtra(Intent.EXTRA_LOCAL_ONLY, true);
intent.putExtra(Intent.CATEGORY_OPENABLE, true);
startActivityForResult(Intent.createChooser(intent, getString(R.string.select_pic)), SELECT_IMAGE);
这是 onActivityResult:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
if(resultCode == RESULT_OK) {
if (requestCode == SELECT_IMAGE) {
if (data != null) {
Uri uri = data.getData();
...
}
}
}
}
super.onActivityResult(requestCode, resultCode, data);
}
这里的问题是,在某些设备上,uri 为空,即使用户选择了图像。主要是三星设备和一些摩托罗拉手机。我也尝试使用ACTION_PICK 而不是ACTION_CONTENT,但它也发生在其他一些设备上。所以我想知道是否有办法让用户选择一张通用的图片。
遇到此问题的一些手机是:
- 三星 Galaxy A21S - Android 11 (SDK 30)
- 三星 Galaxy A3 (2016) - Android 7.0 (SDK 24)
- Motorola moto e6 play - Android 9 (SDK 28)
这些受影响设备的一些用户通知说它只是偶尔发生。
【问题讨论】:
-
你也得试试
ACTION_OPEN_DOCUMENT。 -
我已经添加了。关于ACTION_OPEN_DOCUMENT,我不是很喜欢,因为picker界面的选项比较少。无论如何,您有任何理由选择 ACTION_OPEN_DOCUMENT 吗?
-
希望this能帮到你
标签: android image android-intent gallery samsung-mobile