What intent-filters must my app cover to appear in

2019-01-09 04:18发布

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?

4条回答
我命由我不由天
2楼-- · 2019-01-09 04:47

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" />
查看更多
趁早两清
3楼-- · 2019-01-09 05:00

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.

查看更多
对你真心纯属浪费
4楼-- · 2019-01-09 05:06

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

查看更多
不美不萌又怎样
5楼-- · 2019-01-09 05:11

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>
查看更多
登录 后发表回答