安卓将自己的应用加入到“用其它应用打开”的列表中

如果你的应用能够处理 某些特殊格式的文件, 比如gis行业的 轨迹点文件, 用户在手机的文件管理器中 选中这些文件后,点击“用其它应用打开”,你希望你的应用能出现在 可打开的应用列表中。

需要注意的地方

1、mimeType 需要指定为 "*/*", 因为这种gis文件并不是 计算机行业通用的格式,它没有相应的 mimeType。

2、需要通过 pathPattern 来过滤掉其它格式的文件。


这种方式是我在解压 “两步路(户外助手)”时发现的,  它这种实现方式机智的地方 在于用 pathPattern 来过滤掉  因为 "*/*" 导致的所有类型的文件都能响应的问题。

 

<activity
    android:name=".business.trace.ImportRouteActivity"
    android:screenOrientation="portrait">

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

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

        <data android:scheme="file"/>
        <data android:scheme="content"/>
        <data android:scheme="http"/>
        <data android:scheme="https"/>
        <data android:mimeType="*/*"/>
        <data android:pathPattern=".*\\.gpx"/>
        <data android:pathPattern=".*\\.loc"/>
        <data android:pathPattern=".*\\.kmz"/>
        <data android:pathPattern=".*\\.kml"/>
        <data android:pathPattern=".*\\.KML"/>
        <data android:host="*"/>
    </intent-filter>
</activity>


补充一下 uri 的组成如下: 

<scheme>://<host>:<port>/[<path>|<pathPrefix>|<pathPattern>]

  • scheme
    例如http、content、file。
  • host
    URI的主机名,比如www.jianshu.com
  • port
    端口号。
  • path/pathPattern/pathPrefix
    path表示完整的路径。 pathPattern是判定完整路径是否匹配用的正则表达式。pathPrefix也是正则表达式,它匹配的是路径的前缀信息。



猜你喜欢

转载自blog.csdn.net/u013394527/article/details/80982369
今日推荐