用于从Gmail的“附加图片”/“附加视频”按钮打开我的应用程序的Intent过滤器

时间:2013-04-03 18:42:24

标签: android android-intent broadcastreceiver android-manifest intentfilter

我希望从Gmail应用中选择“附加图片”/“附加视频”时,我的应用会显示为一个选项。 (注意:我 指的是从我的应用中分享或向Gmail发送图片。)

如何将我的应用程序注册为图库/选择器?我在我的清单中尝试过以下操作,但我的应用程序未被列为从Gmail中选择图片或视频的可能应用程序之一:

<application ...>

    <receiver android:name="MyReceiver" >
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
        </intent-filter>
    </receiver>

    <activity ...>

        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" /> 
            <data android:mimeType="vnd.android.cursor.dir/image" /> 
            <data android:mimeType="vnd.android.cursor.dir/video" />
        </intent-filter>

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

        <intent-filter>
            <action android:name="com.google.android.apps.drive.DRIVE_OPEN" />
            <action android:name="android.intent.action.VIEW" />
            <action android:name="android.intent.action.EDIT" />
            <action android:name="android.intent.action.INSERT" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="*/*" />
        </intent-filter>   

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

        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" /> 
            <data android:mimeType="vnd.android.cursor.dir/image" /> 
            <data android:mimeType="vnd.android.cursor.dir/video" />
        </intent-filter>

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

    </activity>
</application>

我做错了什么?我是否必须注册广播接收器?

1 个答案:

答案 0 :(得分:0)

Gmail要求提供将发送图片的应用程序。这可能会转化为:

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

对于视频,您可以指定mime类型video/*

我没有对此进行过测试,但我相当肯定它能解决这个问题。