首先,这不是经常发布的结果代码过早返回的问题。在这种情况下,只有在图库中选择了某个项目后,它才能返回。
在我的测试案例中,我使用以下代码调用Gallery:
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent, SELECT_PICTURE);
在onActivityResult中有:
if (resultCode == Activity.RESULT_OK) {
if (requestCode == SELECT_PICTURE) {
Uri selectedImageUri = data.getData();
pathText.setText(selectedImageUri.getPath());
}
} else {
pathText.setText("Result not OK - code is " + resultCode);
}
pathText只是我放入的TextView,用于在测试用例中显示结果。在实际的应用程序中,路径有不同的用法。
如果我使用ACTION_PICK而不是_GET_CONTENT,则会立即收到其他人报告的故障。清单中没有launchMode标记(某些帖子建议该区域存在问题)。
也许这里有一个线索。在东芝Thrive上,使用图库,文件管理器或鱼缸照片库不会出现此错误。在Kindle Fire上,Quickoffice还能够正确返回图像路径。该错误仅在Kindle的内置Gallery上显示给我。在“ Motorola Droid(2.3.4),HTC EVO(2.3)”上也观察到该错误。
拜托,如何以适用于所有这些设备的方式从图库中获取图像路径?
最佳答案
在其中一项活动的清单中设置launchMode =“ singleInstance”时,我遇到了同样的问题。当我删除该属性时,它工作正常。
关于android - Android Gallery始终将RESULT_CANCELED返回到onActivityResult,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10002065/