android 關於讀取SD卡或者U盤的一些方法

2021-06-21 16:10:51 字數 1842 閱讀 2305

最近做的專案牽涉到讀取裝置外接sd卡,據說不同裝置外接sd卡路徑是不一樣的,這跟各家晶元廠商寫底層的程式設計師有關,不同廠家或者不同程式設計師,路徑搞的就不一樣了 ,所以查了寫資料,稍微整理下;然後還有usb裝置,據說也是這種情況。

我們常用的讀取sd卡方法,也是預設讀取裝置內建的sd卡方法,如:

/*

* 獲得sd卡目錄,缺省內置的

*/public string getsdpath(context context) else

return sddir.tostring();

}

這個方法得到的目錄是:/mnt/sdcard,這個是android裝置預設的sd卡目錄,也是內建的。

下面來帖乙個讀取外接sd卡路徑的方法,本人覺得很好用,不僅能讀取sd卡,usb裝置也可以的。

/*

* 嘗試獲取當前外接sd卡路徑

* * 04-15 17:16:45.409: i/外接sd卡路徑(10395):

*/// */mnt/private

// */mnt/sdcard

// */mnt/extsd

public string getoutsdpath()

} else if (line.contains("fuse")) }}

log.i("外接sd卡路徑", mount);

} catch (filenotfoundexception e) catch (ioexception e)

return mount;

}

如果你不插tf卡或者u盤,會獲取

*/mnt/private

*/mnt/sdcard 這兩個路徑

如果插上sd卡或者tf卡,會獲取

*/mnt/private

*/mnt/sdcard

*/mnt/extsd 這三個路徑,很明顯,/mnt/extsd 這個就是外接sd卡路徑,但不同裝置可能不太一樣,你可以嘗試

如果只插上 usb裝置,會獲取

*/mnt/private

*/mnt/sdcard

*/mnt/usbhost0 這個usb裝置如果有多個介面的話,可能是/mnt/usbhost1,2,3...... 

很明顯,/mnt/

usbhost0 這個就是外接usb裝置路徑,但不同裝置可能不太一樣,你可以嘗試

如果u盤跟sd卡都插上,嘿嘿,你猜

帖張吧,這個只針對我的裝置,應該能稍微加深點理解

還有,有可能你雖然獲得了外接sd卡路徑,但你有時會發現不能往裡面寫資料!

這個可能是你系統版本有點小高,可以試試下面方法:

新增外接卡的寫入許可權 re管理器,用文字編輯器開啟/system/etc/permissions目錄下的「platform.xml」檔案(掛載讀寫),在

name="android.permission.write_external_storage" > < group gid="sdcard_rw" /> 下面添一行 (注意段首對齊,"media_rw"和/>之間有

空格)儲存並退出,重啟系統就可以了!

這些主要是給迷途的人兒參考參考,望你們早日脫離苦海,希望能有所幫助。

Android讀取SD卡內容

在做開發的時候遇到乙個問題就是需要為使用者資料做快取特別是檔案快取,下面就來看看sd卡的讀寫操作 android讀取手機sd卡內容 所需許可權 判斷是否掛載 if environment.getexternalstoragestate equals environment.media mounted...

讀取手機或SD卡的音訊

public class musicitem public void setid int id public string gettitle public void settitle string title public string getalbum public void setalbum s...

Android 手持PDA讀取SD卡中檔案

近兩年市場上很多wince裝置都開始轉向android作業系統,最近被迫使用android開發pda手持裝置。主要功能是掃瞄登入,揀貨,包裝,發貨幾個功能。其中涉及到商品檔的時候大概有700左右商品要匯入到android裝置中,因為現場操作環境沒有wifi 所以商品檔不能直接訪問服務,將商品檔記錄到...