17

想创建一个 android 应用程序,它打开一个自定义构建文件扩展名(例如,我想打开 .abcd 文件)

它类似于打开 .pdf 文件的 Adob​​e Reader,或打开 .jpg 文件的 Photo Viewer

具体条件:
1. .abcd 文件应该在应用程序本身的外部/外部。(就像 .pdf 对于 Adob​​e Reader)
2. .abcd 文件将是一个压缩文件,其中包含几个文件夹和 .xml、.txt 和 .jpg 文件。我想我想把它——也许是暂时的——提取到存储中的某个地方(肯定需要一个 zipper/unzipper 库),然后读取单独的 .xml、.txt 和 .jpg 文件。

寻找这个问题的见解和答案。

附加信息:
我对 Android 编程比较陌生。

4

2 回答 2

12

我认为您需要通过以下方式进行此类自定义intent-filter

<intent-filter android:icon="your_drawable-resource"
               android:label="your_string_resource"
               android:priority="integer"> 
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:scheme="file" />
    <data android:host="*" />
    <data android:pathPattern=".*\\.YOUR_CUSTOM_FILE_EXTENSION" />
</intent-filter>

你也应该看看:

于 2013-09-02T18:06:40.510 回答
3

此处显示了一种可能的答案 。尝试对意图过滤器进行一些自定义。

<intent-filter android:priority="999">
    <action android:name="android.intent.action.VIEW" />

    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <category android:name="android.intent.category.OPENABLE" />

    <data android:host="*" />
    <data android:mimeType="application/octet-stream" />
    <data android:pathPattern=".*\\..*\\..*\\..*\\..*\\.yourextension" />
    <data android:pathPattern=".*\\..*\\..*\\..*\\.yourextension" />
    <data android:pathPattern=".*\\..*\\..*\\.yourextension" />
    <data android:pathPattern=".*\\..*\\.yourextension" />
    <data android:pathPattern=".*\\.yourextension" />
    <data android:scheme="content" />
</intent-filter>
于 2019-05-03T20:51:12.160 回答