Фильтр намерений :намерение.getData ()возвращает ноль

Я пишу редактор изображений в 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.

10
задан ziritrion 30 April 2012 в 16:13
поделиться