【问题标题】:Creating app which opens a custom file extension创建打开自定义文件扩展名的应用程序
【发布时间】:2013-09-02 16:59:10
【问题描述】:

想创建一个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 编程比较陌生。

【问题讨论】:

  • 当有人在文件资源管理器中点击 .abcd 文件时调用您的应用程序:stackoverflow.com/questions/3760276/… 调用后,您可以自己解析文件。 Java 提供了解压缩文件的工具:java.util.ZipFile.
  • @EmmanuelTouzery +1,非常感谢。如果这样做,文件是否会传递给应用程序的参数?
  • 它不是那样工作的,android 上没有 main —— 你会收到一个 Intent 然后你可以处理它。签出:developer.android.com/guide/components/intents-filters.html
  • 哦,我明白了,再次感谢您。 :)
  • @RishabhSrivastava 我还在做这个项目。我找到了一种从外部存储解压缩文件的方法(我忘记了链接,但可以通过简单的谷歌搜索找到)。

标签: android file


【解决方案1】:

我认为您需要通过 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>

你也应该看看:

【讨论】:

    【解决方案2】:

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

    <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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多