1、URI=“http://www.java2s.com:8080/yourpath/fileName.htm?stove=10&path=32&id=4#harvic ”
- getScheme() :獲取Uri中的scheme字符串部分,在這裏即,http
- getSchemeSpecificPart():獲取Uri中的scheme-specific-part:部分,這裏是://www.java2s.com:8080/yourpath/fileName.htm?
- getFragment():獲取Uri中的Fragment部分,即harvic
- getAuthority():獲取Uri中Authority部分,即www.java2s.com:8080
- getPath():獲取Uri中path部分,即/yourpath/fileName.htm
- getQuery():獲取Uri中的query部分,即stove=10&path=32&id=4
- getHost():獲取Authority中的Host字符串,即www.java2s.com
- getPost():獲取Authority中的Port字符串,即8080
另外還有兩個常用的:getPathSegments()、getQueryParameter(String key)
-
List< String> getPathSegments():上面我們的getPath()是把path部分整個獲取下來:/yourpath/fileName.htm,getPathSegments()的作用就是依次提取出Path的各個部分的字符串,以字符串數組的形式輸出。以上面的Uri爲例:
String mUriStr = "http://www.java2s.com:8080/yourpath/fileName.htm?stove=10&path=32&id=4#harvic";
Uri mUri = Uri.parse(mUriStr);
List<String> pathSegList = mUri.getPathSegments();
for (String pathItem:pathSegList){
Log.d("qijian","pathSegItem:"+pathItem);
}
打出來的列表爲:
-
getQueryParameter(String key):在上面我們通過getQuery()獲取整個query字段:stove=10&path=32&id=4,getQueryParameter(String key)作用就是通過傳進去path中某個Key的字符串,返回他對應的值。
String mUriStr = "http://www.java2s.com:8080/yourpath/fileName.htm?stove=10&path=32&id#harvic";
mUri = Uri.parse(mUriStr);
Log.d(tag,"getQueryParameter(\"stove\"):"+mUri.getQueryParameter("stove"));
Log.d(tag,"getQueryParameter(\"id\"):"+mUri.getQueryParameter("id"));
注意注意,我稍微更改了下字符串,把query中id的值去掉了!!!!!然後看看通過getQueryParameter("id")獲取它的值會得到什麼!
結果如下:
可以看到,在path中,即使針對某一個KEY不對它賦值是允許的,但在利用getQueryParameter()獲取該KEY對應的值時,獲取到的是null;
2、如果在inter-filter看到如下參數,表明該Activity只打開文件名結尾是.file的文件
<data android:pathPattern=".*\\.file" />
參考文章: