我正在用 Android 编写图像编辑器。到目前为止,它只有一个活动。从这个活动中,我可以使用调用 Gallery 活动的菜单选项加载图像,并在 onActivityResult 中处理接收到的图像来绘制我的画布,以便我可以编辑它。这工作正常。
我现在想做的是让这个活动可以从其他任何地方调用,所以我不必从活动内部挑选一张图片,我可以打开画廊,挑选一张照片并将其发送到我的应用程序。但我不知道怎么做。
在我的清单上,我在<activity>
标签中添加了以下内容:
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
然后,在我的活动中,如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
...
当我在手机中安装应用程序然后打开图库时,我可以选择一张图像并使用“发送”菜单,我的应用程序将显示在应用程序列表中,但是当我选择它时,我的应用程序会打开但忽略图像。事实证明,我从中获取的 uriintent.getData()
是空的,我不知道为什么。
我做错什么了吗?我是不是忘记了什么?如果您必须知道,我使用随附的 CoolIris 库有现货 Android 2.3。