TragedyStruck
TragedyStruck

Reputation: 586

What intent-filters must my app cover to appear in chooser when requestion an image from an external app?

What are the possible intent-filter I need to cover to make sure that any external app requesting an image will see my app in the list?

To clarify, I'd like my app to appear when doing the following:

enter image description here enter image description here

So far I've covered:

<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>

However, if using the Tumblr app and pressing "Add photo", my app does not appear in the chooser dialog. Which filter am I missing out on?

Upvotes: 9

Views: 4730

Answers (4)

TragedyStruck
TragedyStruck

Reputation: 586

I had covered the correct intent-filters, however the Tumblr app requires the category OPENABLE, so instead of the filters I had I'm now using:

<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>

Only adding the line:

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

Upvotes: 8

pzwwei
pzwwei

Reputation: 46

Some applications may specify the application to open, and some applications have already set the default applications to Open.

Upvotes: 1

iTurki
iTurki

Reputation: 16398

Use this <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>

Upvotes: 0

vikki
vikki

Reputation: 2814

The share feature uses the following intent filter

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

Remember that this does not mean an app is requesting a photo but that it wants to send one somewhere.

Upvotes: 0

Related Questions