Я пишу редактор изображений в Android. Пока у него одна активность. Из этого действия я могу загрузить изображение, используя пункт меню, который вызывает действие «Галерея», а в onActivityResult я обрабатываю полученное изображение, чтобы нарисовать свой холст, чтобы я мог его редактировать. Это работает нормально.
Сейчас я хотел бы сделать это действие вызываемым из любого места, чтобы вместо выбора изображения внутри действия я мог просто открыть галерею, выбрать фотографию и отправить ее в свое приложение. Но я не могу понять, как.
В моем манифесте я поместил следующее внутри тегов
:
Затем, в своей деятельности, как указано в http://developer.android.com/training/basics/intents/filters.html, я поместил следующее внутри onCreate():
...
//after initializing my view and stuff
Intent intent =getIntent();
Uri image = intent.getData();
//code to do something with my uri
...
Когда я устанавливаю приложение в моем телефоне, а затем открыть галерею, я могу выбрать изображение и с помощью меню «отправить», и мое приложение появится в списке приложений, но когда я выбираю его, мое приложение открывается, но игнорирует изображение. Оказывается, uri, который я получаю от intent.getData()
, равен нулю, и я не могу понять, почему.
Я делаю что-то не так? Я что-то забыл? Если хотите знать, я использую стоковую версию Android 2.3 и использую прилагаемую к ней галерею CoolIris.