Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Gallery总是将取消的结果返回给onActivityResult_Android_Image_Android Intent_Gallery - Fatal编程技术网

Android Gallery总是将取消的结果返回给onActivityResult

Android Gallery总是将取消的结果返回给onActivityResult,android,image,android-intent,gallery,Android,Image,Android Intent,Gallery,首先,这不是频繁发布的问题,结果代码过早返回。在这种情况下,只有在库中拾取项目后才会返回 在我的测试用例中,我使用以下代码调用Gallery: Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(intent, SELECT_PICTURE); 在onActivityResult中有: if (r

首先,这不是频繁发布的问题,结果代码过早返回。在这种情况下,只有在库中拾取项目后才会返回

在我的测试用例中,我使用以下代码调用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只是我放入的一个文本视图,用于在测试用例中显示结果。在实际应用中,路径有不同的用途

如果我使用ACTION_PICK而不是_GET_内容,我会立即收到其他人报告的故障。清单中没有launchMode标记(一些帖子建议该区域存在问题)

也许这里有线索。在东芝Thrive上,使用Gallery、File Manager或Fish Bowl照片库时,此错误不会出现。在KindleFire上,Quickoffice还能够正确返回图像路径。这个bug只出现在Kindle的内置图库中。在“摩托罗拉Droid(2.3.4)HTC EVO(2.3)”上也观察到了该漏洞


请问,我怎样才能从图库中获得一个在所有这些设备上都有效的图像路径?

嗨,史蒂夫,试试看,这似乎对我的壁纸项目有效

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

我认为,默认情况下,如果您没有在返回结果代码的意图中指定,gallery不会返回结果代码。通过在代码中添加以下代码段,可以在返回结果代码的意图中指定:

Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.putExtra("return-data", true); //added snippet
startActivityForResult(Intent.createChooser(intent, "Select Picture"),SELECT_PICTURE);

当我在清单中为某个活动设置launchMode=“singleInstance”时,我的某个活动也遇到了同样的问题。当我删除该属性时,它工作正常。

似乎是Kindle Fire中的一个bug。我想你一定是对的。我确信我在几周前编写这段代码时测试过它,但最近失败了。有趣的事实:如果您使用
startActivityForResult(Intent.createChooser(Intent,null),code)
它甚至可以与
laucmode=“singleInstance”
一起使用-谢谢您的提示!