在从外部应用程序请求图像时,我的应用程序必须覆盖哪些intent-filters才能显示在选择器中?

时间:2012-08-31 03:25:45

标签: android android-intent

我需要涵盖哪些可能的意图过滤器,以确保请求图像的任何外部应用程序都能在列表中看到我的应用程序?

为了澄清,我希望在执行以下操作时显示我的应用程序:

enter image description here enter image description here

到目前为止,我已经介绍过:

<intent-filter>
    <action android:name="android.intent.action.PICK" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="image/*" />
</intent-filter>
<intent-filter>
    <action android:name="android.intent.action.GET_CONTENT" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="image/*" />
</intent-filter>

但是,如果使用Tumblr应用程序并按“添加照片”,我的应用程序不会出现在选择器对话框中。我错过了哪个过滤器?

4 个答案:

答案 0 :(得分:9)

我已经介绍了正确的intent-filters,但是Tumblr应用程序需要类别OPENABLE,所以不是我现在使用的过滤器:

<intent-filter>
    <action android:name="android.intent.action.PICK" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="image/*" />
</intent-filter>
<intent-filter>
    <action android:name="android.intent.action.GET_CONTENT" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.OPENABLE" />
    <data android:mimeType="image/*" />
</intent-filter>

仅添加以下行:

<category android:name="android.intent.category.OPENABLE" />

答案 1 :(得分:1)

某些应用程序可能会指定要打开的应用程序,而某些应用程序已将默认应用程序设置为“打开”。

答案 2 :(得分:0)

共享功能使用以下意图过滤器

<intent-filter>
    <action android:name="android.intent.action.SEND" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="image/*" />
</intent-filter>

请记住,这并不意味着应用正在申请照片,而是希望在某个地方发送照片。

答案 3 :(得分:0)

使用此<intent-filter>

<intent-filter
    android:icon="@drawable/icon"
    android:label="Share to my app">
    <action android:name="android.intent.action.SEND" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="image/*" />
</intent-filter>