我想要注册一个新的文件扩展名(.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>
答案 0 :(得分:1)
这就是我现在在我的应用中设置意图的方法。只需用.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>