1

我有一个使用意图的 Android 应用程序。这是代码:

private static final int CAPTURE_IMAGE= 1;
[...]
Uri imageUri = helper.createImageDestinationUri(null, filename);
[...]
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(intent, CAPTURE_IMAGE);

然后我在这里得到结果:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == CAPTURE_IMAGE) {
        if (requestCode == Activity.RESULT_OK) {
            
            Toast.makeText(this, "Image saved to:\n" +
                    data.getData(), Toast.LENGTH_LONG).show();
        }
        else {
            Toast.makeText(getApplicationContext(), "Error", Toast.LENGTH_SHORT).show();
        }
    }
}

我拥有所有需要的权限。

奇怪的是: 最后图片总是在我的 SD 卡上,但我从来没有得到RESULT_OK结果。

那里有什么问题?

4

1 回答 1

5

您正在检查 RESULT_OK 的 requestCode

if (requestCode == Activity.RESULT_OK) 

当你应该检查 resultCode

if (resultCode == Activity.RESULT_OK) 
于 2012-09-13T17:05:32.730 回答