2

新しいファイル拡張子(.db_backup)を登録して、この拡張子を持つすべてのファイルをアプリで開くようにします。

基本的に、このタイプのファイルは添付ファイルとして電子メールにバックアップされます。添付ファイルを開いているときに、このタイプのすべてのファイルをアプリで直接開くようにします。

android:mimeType = application / *に言及することで、これを行うことに成功しました。

しかし、今ではすべてのアプリケーション(PDF、APK)が私のアプリでも開きます(*が言及されているので明らかです)。マニフェストで言及するandroid:mimeTypeを教えてください。私のAndroidManifest.xmlは次のとおりです。

<activity
        android:name="com.package.RestoreFromMail"
        android:configChanges="keyboardHidden|orientation"
        android:label="@string/restore_mail" >
        <intent-filter android:priority="1" >
            <category android:name="android.intent.category.DEFAULT" >
            </category>

            <action android:name="android.intent.action.VIEW" >
            </action>

            <data
                android:host="*"
                android:pathPattern=".*\\.db_backup"
                android:scheme="http" >
            </data>
        </intent-filter>
        <intent-filter android:priority="1" >
            <category android:name="android.intent.category.DEFAULT" >
            </category>

            <action android:name="android.intent.action.VIEW" >
            </action>

            <data
                android:host="*"
                android:pathPattern=".*\\.db_backup"
                android:scheme="file" >
            </data>
        </intent-filter>
        <intent-filter android:priority="1" >
            <category android:name="android.intent.category.DEFAULT" >
            </category>

            <action android:name="android.intent.action.VIEW" >
            </action>

            <data
                android:host="*"
                android:mimeType="application/*" >
            </data>
        </intent-filter>
    </activity>
4

1 に答える 1

2

これが、現在アプリでインテントを設定する方法です。拡張子を.extに置き換えてください。mimeType = "*/*"を使用していることにも注意してください。Astroファイルマネージャーで動作させるためにこれを行う必要がありました。コンテンツスキームのあるAndroid:host = "*"を削除することで、メールでも機能するようになりました。

<!-- For email -->
<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:scheme="content" />
    <data android:pathPattern=".*\\.ext" />
    <data android:mimeType="application/octet-stream" />
 </intent-filter>

  <!-- For http -->
<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:scheme="http" />
    <data android:host="*" />
    <data android:pathPattern=".*\\.ext" />
    <data android:pathPattern=".*\\..*\\.ext"/>
    <data android:pathPattern=".*\\..*\\..*\\.ext"/>
    <data android:pathPattern=".*\\..*\\..*\\..*\\.ext"/>
    <data android:pathPattern=".*\\..*\\..*\\..*\\..*\\.ext"/>
    <data android:pathPattern=".*\\..*\\..*\\..*\\..*\\..*\\.ext"/>
    <data android:mimeType="*/*" />
 </intent-filter>

<!-- For https -->
<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:scheme="https" />
    <data android:host="*" />
    <data android:pathPattern=".*\\.ext" />
    <data android:pathPattern=".*\\..*\\.ext"/>
    <data android:pathPattern=".*\\..*\\..*\\.ext"/>
    <data android:pathPattern=".*\\..*\\..*\\..*\\.ext"/>
    <data android:pathPattern=".*\\..*\\..*\\..*\\..*\\.ext"/>
    <data android:pathPattern=".*\\..*\\..*\\..*\\..*\\..*\\.ext"/>
    <data android:mimeType="*/*" />
 </intent-filter>

<!-- For file browsers and google drive -->
<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:scheme="file" />
    <data android:host="*" />
    <data android:pathPattern=".*\\.ext" />
    <data android:pathPattern=".*\\..*\\.ext"/>
    <data android:pathPattern=".*\\..*\\..*\\.ext"/>
    <data android:pathPattern=".*\\..*\\..*\\..*\\.ext"/>
    <data android:pathPattern=".*\\..*\\..*\\..*\\..*\\.ext"/>
    <data android:pathPattern=".*\\..*\\..*\\..*\\..*\\..*\\.ext"/>
    <data android:mimeType="*/*" />
 </intent-filter>
于 2013-01-27T18:21:19.950 に答える