Android 文件关联
来源:互联网 发布:mac dmg驱动装不上 编辑:程序博客网 时间:2024/06/05 06:41
做一个项目的时候,需要点击文件打开我们自己的app。学习了这个部分,记录一下,不对的地方,欢迎指出。
首先讲一下点击普通文件打开app的方法,只需要三行代码,在app启动活动里加一个过滤器。
<activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="*/*" /> </intent-filter> </activity>*/*即所有文件的意思,但是很多时候我们并不是需要所有的文件,这个时候就要学习一样mineType了。
一、mineType
mineType媒体类型,一般是[type]/[subtype]格式。
1.type
Text:用于标准化地表示的文本信息,文本消息可以是多种字符集和或者多种格式的;
Multipart:用于连接消息体的多个部分构成一个消息,这些部分可以是不同类型的数据;
Application:用于传输应用程序数据或者二进制数据;
Message:用于包装一个E-mail消息;
Image:用于传输静态图片数据;
Audio:用于传输音频或者音声数据;
Video:用于传输动态影像数据,可以是与音频编辑在一起的视频数据格式。
2.subtype主要用法
text/plain(纯文本)
text/html(HTML文档)
application/xhtml+xml(XHTML文档)
image/gif(GIF图像)
image/jpeg(JPEG图像)
image/png(PNG图像)
video/mpeg(MPEG动画)
application/octet-stream(任意的二进制数据)
application/pdf(PDF文档)
application/msword(Microsoft Word文件)
multipart/alternative(HTML邮件的HTML形式和纯文本形式,相同内容使用不同形式表示)
application/x-www-form-urlencoded(使用HTTP的POST方法提交的表单)
multipart/form-data(同上,但主要用于表单提交时伴随文件上传的场合)
3.例子
text/xml
4.笔记
一些基本的文件已经能够关联,但是有一些自定义的文件无法关联,如.pac文件。这个时候需要学习一下第二部分自定义文件关联。
二、data标签
<data android:host="string" android:mimeType="string" android:path="string" android:pathPattern="string" android:pathPrefix="string" android:port="string" android:scheme="string"/>
1.scheme
这个属性用于设定URI的scheme部分。它是给指定URI设置的最基本的属性,至少要给过滤器设置一个scheme属性,否则,其他的URI属性就没有意义了。scheme属性值没有”:”符号结尾(如,file,而不是file: )
2.host
URI授权的主机部分。
3.port
定义URI授权的端口部分。
host和port的使用都依赖于scheme。
4.mintype
前面已讲过。
5.path
path指定一个完整的路径。
6.PathPrefix
PathPrefix属性只指定了部分路径,它会跟Intent对象中的路径初始部分匹配。
7.pathPattern
重点来了,pathPattern属性指定一个要跟Intent对象中的路径进行匹配的完整路径,但是这个路径中可以包含下列通配符:
7.1. 星号(*)通配符,路径中的*星号代表任意多个星号之前的那个字符,如a*,可跟a、aa、aaa、aaaa、...字符串匹配。
7.2. 点跟星号的组合(.*)通配符,它可以跟任意字符串进行匹配,如.*pac,可以跟abpac、cpac、pac、dssf.pac、…等字符串匹配。
三、例子
本人需要点击的文件是一个这样的文件:
1.文件路径:/storage/emulated/0/Android/data/包名/files/files/Omega4040_00.00.4002_Nor.pac
2.文件名:Omega4040_00.00.4002_Nor.pac
3.代码:
<activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <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:mimeType="*/*" /> <data android:host="*" /> <data android:pathPattern=".*pac" /> </intent-filter> </activity>
- Android 文件关联详解
- Android 文件关联
- android 文件关联 mimeType
- Android 文件关联
- Android应用实现文件关联
- Android应用实现文件关联
- android 文件关联之mimetype
- android文件关联之mime type
- ANDROID文件关联之MIME TYPE
- android文件关联之mime type
- ANDROID文件关联之MIME TYPE
- Android 自定义类型文件与程序关联
- android文件关联之mime type
- Android 自定义类型文件与程序关联
- android 多媒体文件关联之MIME TYPE
- ANDROID文件关联之MIME TYPE
- Android文件关联之Mime Type
- Android studio 关联so文件 最新方法
- 集群架构及常见集群特性介绍
- Maven定义依赖版本号
- 使用Archetype创建自己的plugin
- 二维码扫码登录详解【附简易实例代码(html+php+ios)】
- MongoDB(一)---基础命令
- Android 文件关联
- oracle触发器浅析和案例
- 个人简介
- 51nod 1197 字符串的数量 V2 dp+矩阵乘法
- UVA
- lscpu命令详解
- 有没有大神能够逐行解释一下代码?Delphi
- split.JobSplitWriter: Max block location exceeded for split
- Redis的使用 快速入门