Android: намерение галереи вернуть resultCode == RESULT_CANCELED - PullRequest
6 голосов
/ 14 марта 2011

Я начинаю намерение выбрать изображение из галереи, но оно всегда возвращается с кодом результата RESULT_CANCELED. Я пробовал много разных кодов, но ничего не помогает, что заставляет меня думать, может быть, я что-то упустил, например, что-то добавить в действие в манифесте Android?

Мой код:

// The Intent
Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 0);

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    super.onActivityResult(requestCode, resultCode, data);

    if (resultCode == RESULT_OK){
        Uri targetUri = data.getData();
        Bitmap bitmap;
        try {
            bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(targetUri));
            profileImage.setImageBitmap(bitmap);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

Буду признателен за помощь;)

Ответы [ 2 ]

16 голосов
/ 14 марта 2011

ОК, поэтому я решил это. Моя проблема оказалась в том, что метод onActivityResult () вызывался до того, как закончилась галерея. Я нашел решение здесь: onActivityResult () вызвано преждевременно

По сути, я указал в манифесте действие как "singleTask". Изменение на "singleTop" решило это для меня.

1 голос
/ 04 ноября 2017

Это спасло мне жизнь!\ 0 /

android: launchMode = "singleTop"

...