Фильтр намерений для открытия моего приложения с помощью кнопки «Прикрепить изображение» или «Прикрепить видео» в Gmail

Я хочу, чтобы мое приложение появлялось в качестве опции при выборе «Прикрепить изображение» / «Прикрепить видео» в приложении 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>

Что я делаю не так? Должен ли я регистрировать широковещательный приемник?


person Sitoplex    schedule 03.04.2013    source источник


Ответы (1)


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/*.

Я не проверял это, но я совершенно уверен, что это сработает.

person Paul Lammertsma    schedule 03.04.2013
comment
Как это закодировать, ман? Я имею в виду, что мое приложение открывается, но как пользователь может выбрать оттуда изображение? - person Dr. aNdRO; 18.12.2013