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