как открыть галерею через намерение безрезультатно - PullRequest
4 голосов
/ 05 октября 2010

Эй, ребята, у меня небольшая проблема, с которой я застрял.У меня есть своего рода ApplicationLauncher, который должен запустить встроенную галерею.Но я не хочу получать какой-либо результат из этой галереи ... Я просто хочу запустить ее и хочу, чтобы мой "Launcher" закрылся после этого.

Что я пробовал:

    Intent intentBrowseFiles = new Intent(Intent.ACTION_GET_CONTENT);
    intentBrowseFiles.setType("image/*");
    intentBrowseFiles.setFlag(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intentBrowseFiles);

но он даже не работает с этим флагом ... как только я нажимаю на картинку в галерее, он закрывается и возвращается к моему "Launcher".Есть ли способ достичь того, что я хочу сделать?Заранее спасибо, Макс

Ответы [ 4 ]

4 голосов
/ 19 июля 2013
    Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_VIEW );
    startActivity(intent);
2 голосов
/ 12 апреля 2012

Поскольку кажется, что невозможно открыть галерею через Intent, чтобы просто просматривать изображения (без намерения выбрать изображение, которое затем передается обратно в ваше приложение), как при запуске галереи из модуля запуска,Единственное решение, которое я нашел, - это указать пакет и имя Activity в Intent.Например:

// For Android 4.0 (Samsung Galaxy Nexus)
final Intent intent = new Intent();
intent.setClassName("com.google.android.gallery3d", "com.android.gallery3d.app.Gallery");
startActivity(intent);

или

// For Samsung Galaxy S2
final Intent intent = new Intent();
intent.setClassName("com.cooliris.media", "com.cooliris.media.Gallery");
startActivity(intent);

Конечно, это решение совсем не гибкое, и вам придется хранить список имен пакетов / действий в приложении и отправкеУмышляйте (ловя ActivityNotFoundException), пока не найдете нужный.

2 голосов
/ 05 октября 2010

Я просто хочу запустить его и хочу, чтобы мой «Launcher» закрывался после этого.

Позвоните finish() после того, как вы позвоните startActivity(), чтобы закрыть ваш «Launcher».

1 голос
/ 05 октября 2010

Вызов финиша на панели запуска и очистка стека активности может помочь, но ваша проблема, вероятно, связана с тем, что ваше намерение - Intent.ACTION_GET_CONTENT.

Похоже, вы пытаетесь получить контент из галереи, и это то, что он делает. Попробуйте вместо ACTION_VIEW.

...