展会信息港展会大全

android如何让自己开发的播放器成为可供文件选择的播放器
来源:互联网   发布日期:2015-09-29 10:20:29   浏览:3067次  

导读:在AndroidManifest.xml中添加intent过滤器,并设置data属性intent-filter action android:name=android.intent.action.VIEW / categor......

在AndroidManifest.xml中添加intent过滤器,并设置data属性

<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="content"/>

<data android:scheme="file"/>

<data android:scheme="http" />

<data android:mimeType="audio/*"/>

<data android:mimeType="application/ogg"/>

<data android:mimeType="application/x-ogg"/>

<data android:mimeType="application/itunes"/>

</intent-filter>

在你的播放器Activity中加上这个过滤器

AndroidManifest.xml文件详解(data)

语法(SYNTAX):

<dataandroid:host="string"android:mimeType="string"android:path="string"android:pathPattern="string"android:pathPrefix="string"android:port="string"android:scheme="string"/>

包含于(CONTAINED IN):

<intent-filter>

说明(DESCRIPTION):

这个元素用于把数据规范添加到一个Intent过滤器中,数据规范能够只是数据类型(mimeType属性)、或数据位置标识(URI),也可以是数据类型和数据位置标识(URI)。一个URI(如下格式)被分成几个独立的属性来分别指定:

scheme://host:port/path or pathPrefix or pathPattern

这些属性是可选的,但也是相互依赖的。如果没有给Intent过滤器指定scheme属性,那么所有其他的URI属性都会被忽略。如果没有给过滤器指定host属性,那么port属性和所有的路径属性都会被忽略。

包含在同一个<intent-filter>元素中所有的<data>元素只会对这个过滤器起作用,例如:

<intent-filter . . . ><data android:scheme="something" android:host="project.example.com" />. . . </intent-filter>

等同于

<intent-filter . . . ><data android:scheme="something" /><data android:host="project.example.com" />. . . </intent-filter>

可以在<intent-filter>元素内放置多个<data>元素,来给过滤器设置多个数据选项。<data>元素的属性没有默认值。

属性(ATTRIBUTES):

android:host

这个属性用户定义URI授权的主机部分,除非给过滤器也指定了<data>元素的scheme属性,否则这个属性没有意义。

注意:在Android框架中,主机名的匹配是大小写敏感的,跟RFC格式不一样。因此,要始终使用小写字母来指定主机名。

android:mimeType

这个属性用于设定数据的MIME类型,如:image/jpeg或audio/mpeg4-generic。其子类型可用星号通配符(*)来代替,指示能够跟任何子类型匹配。

注意:在Android框架中,MIME类型的匹配是大小写敏感的,跟RFC格式不一样。因此,要始终使用小写字母来指定MIME类型。

android:path

android:pathPrefix

android:pathPattern

这个三个属性用于指定URI的路径部分。Path属性指定一个完整的路径,这个路径会跟Intent对象中的路径进行匹配。PathPrefix属性只指定了部分路径,它会跟Intent对象中的路径初始部分匹配。pathPattern属性指定一个要跟Intent对象中的路径进行匹配的完整路径,但是这个路径中可以包含下列通配符:

1. 星号(*)通配符,路径中的*星号代表任意多个星号之前的那个字符,如a*,可跟a、aa、aaa、aaaa、...字符串匹配。

2. 点跟星号的组合(.*)通配符,它可以跟任意字符串进行匹配,如.*html,可以跟abchhtml、chtml、html、dssf.html、 等字符串匹配。

因为系统读取XML中的字符串时,会把 \ 符号作为强制转义字符,因此就需要两次转义。例如,符号 * 要被写成 \\* ,符号 \ 要被写成 \\\\ 。这与Java代码中的写法基本相同。

有关这三种模式的更多信息,请看PatternMatcher类中的PATTERN_LITERAL、PATTERN_PREFIX、PATTERN_SIMPLE_GLOB的说明。

http://developer.android.com/reference/android/os/PatternMatcher.html

android:port

这个属性用于定义URI授权的端口部分。只有给过滤器指定了scheme和host属性时,这个属性才有意义。

android:scheme

这个属性用于设定URI的scheme部分。它是给指定URI设置的最基本的属性,至少要给过滤器设置一个scheme属性,否则,其他的URI属性就没有意义了。

scheme属性值没有 : 符号结尾(如,http,而不是http: )

如果过滤器有一个数据类型(设置了mimeType属性),但没有设置scheme属性,那么系统就会假定scheme是content:和file:

注意:在Android框架中,scheme的匹配时大小写敏感的,跟RFC格式不一样。因此,要始终使用小写字母来指定scheme。

赞助本站

人工智能实验室

相关热词: 播放器 文件选择

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港