Uri轉換為String型別路徑

2021-08-03 08:06:54 字數 2453 閱讀 9954

一般從相簿選擇完**後,返回的是乙個uri ,我們一般要將其轉換為string型別的路徑才能使用。那麼,如何將uri轉換為string型別的路徑呢?

在給出**之前,我先用android 4.4 以上的手機從相簿選擇**,列印出返回的uri為:

content:
再用android 4.4 以下的手機從相簿選擇**,列印出返回的uri為:

content://media/external/images/media/34148
可以發現,兩次返回的uri是不一樣的,那麼uri轉換為string型別路徑的方法也是不一樣的。

1、android 4.4以下的手機用此方法將uri轉為string型別的路徑

public

static string getpathfromuri(final context context, final uri uri)

final string scheme = uri.getscheme();

string path = null;

if (scheme == null)

path = uri.getpath();

else else

if (contentresolver.scheme_content.equals(scheme)) , null, null, null);

if (null != cursor)

}cursor.close();}}

}return path;

}

2、android 4.4以上的手機用此方法將uri轉為string型別的路徑

public

class

getimagepathutil

} else

if (isdownloadsdocument(uri)) else

if (ismediadocument(uri)) else

if ("video".equals(type)) else

if ("audio".equals(type))

final string selection = "_id=?";

final string selectionargs = new string;

return getdatacolumn(context, contenturi, selection, selectionargs);

}} else

if ("content".equalsignorecase(uri.getscheme())) else

if ("file".equalsignorecase(uri.getscheme()))

return

null;

}public

static string getdatacolumn(context context, uri uri, string selection, string selectionargs) ;

try

} finally

return

null;

}/**

*@param uri the uri to check.

*@return whether the uri authority is externalstorageprovider.

*/public

static

boolean

i***ternalstoragedocument(uri uri)

/***@param uri the uri to check.

*@return whether the uri authority is downloadsprovider.

*/public

static

boolean

isdownloadsdocument(uri uri)

/***@param uri the uri to check.

*@return whether the uri authority is mediaprovider.

*/public

static

boolean

ismediadocument(uri uri)

/***@param uri the uri to check.

*@return whether the uri authority is google photos.

*/public

static

boolean

isgooglephotosuri(uri uri)

}

其實,後面寫的那個工具類相容了android 4.4以下的情況,也就是說,後不管是android 4.4以前的手機,還是android 4.4以後的手機,都可以用後面那個工具類將uri裝為string型別路徑。

string型別轉換為char

標準庫string類提供了3個成員函式來從乙個string得到c型別的字元陣列,c str data copy p,n 1.c str 是borland封裝的string類中的乙個函式,它返回當前字串的首位址。換種說法,c str 函式返回乙個指向正規c字串的指標常量,內容與本 string串相同。...

Clob型別轉換為String

sql clob 是內建型別,它將字元大物件儲存為資料庫表某一行中的乙個列值,使用char來儲存資料,如xml文件。如下是乙個clob轉換為string的靜態方法,可將其放在自己常用的工具類中,想直接用的話,自己稍作修改即可 public staticstring clobtostr clob cl...

將char型別轉換為string型別

將char型別轉換為string型別 string的建構函式中有此函式原型 string size t n,char c 因此我們可以直接使用此函式 string s 1,a 建立s並將1個a存入到s中 前面的數字代表多少個 擴充套件將char型別放入到vector容器中 第一種就是 vectorv...