Регистрация приложения для Android для получения файлов определенных типов - PullRequest
0 голосов
/ 10 февраля 2019

Я бы хотел, чтобы мое приложение могло принимать визитные карточки.Обычно из вложений электронной почты, но также из файлов и т. Д.К сожалению, оно не отображается в меню «Открыть с помощью» / «Поделиться с».

Это определение действия в манифесте:

     <activity
        android:name=".MyMainActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

        <intent-filter tools:ignore="AppLinkUrlError">
            <action android:name="android.intent.action.VIEW"/>
            <action android:name="android.intent.action.SEND" />
            <action android:name="android.intent.action.BROWSABLE"/>
            <action android:name="android.intent.action.EDIT" />
            <action android:name="android.intent.action.PICK" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="*/*" />
            <data android:scheme="http" android:host="*" android:pathPattern=".*\\.vcf"/>
            <data android:scheme="https" android:host="*" android:pathPattern=".*\\.vcf"/>
            <data android:scheme="content" android:host="*" android:pathPattern=".*\\.vcf"/>
            <data android:scheme="file" android:host="*" android:pathPattern=".*\\.vcf"/>
        </intent-filter>
    </activity>

В моем тестовом вложении электронной почты vCard есть .vcf расширение файла, и электронная почта помечает mimetype как text/vcard.Я использовал *.* mimetype для тестирования - очевидно, это не подходит для производственного кода.

Приведенный выше код взят из других вопросов, связанных со стековым потоком, постов в блоге и т. Д. Сначала я начал со следующего (оба с миметипом text/vcard и затем */*:

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

1 Ответ

0 голосов
/ 11 февраля 2019

Для веб-URL и большинства целей на устройстве это должно работать с опциями «Открыть с помощью»:

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

Если вы хотите также поддерживать «Поделиться с», вы можете попробовать:

    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="text/vcard" />
    </intent-filter>

Обратите внимание, что способ получения содержимого зависит от этих двух действий:

  • Для ACTION_VIEW на вашем Intent
...