關於Android手機獲取SD卡路徑的問題

2021-09-08 00:21:29 字數 922 閱讀 2235

在開發的時候經常會使用到sd卡,比如快取等需要大的儲存空間的時候,android中獲取sd卡的介面只有乙個

string path= environment.getexternalstoragedirectory().getabsolutepath();
從介面的命名上來看是獲取外接的sd卡,從國內手機的發展來看,原來手機本身儲存小,都會外接乙個sd卡,通過上面的介面獲取外接sd卡的路徑很容易理解,同時由於sd卡是可插拔的,所以又有了下面的這個介面

string state = environment.getexternalstoragestate();

//是否掛載

boolean result = state.equals(environment.media_mounted)

但是現在的手機基本上都沒有外接的sd卡了,那麼現在的手機通過上面的介面獲取到內建儲存的路徑一般是/storage/emulated/0,那麼這個時候判斷sd卡是否掛載的介面好像就沒什麼用了,鑑於上面的兩種情況,我們在使用sd卡的時候要怎麼做判斷呢,那麼有沒有什麼判斷來判斷乙個手機有沒有外接的sd卡呢,我發現了下面這個介面:

boolean  isremove = environment.i***ternalstorageremovable();
這個介面的意思很明確了,就是判斷外齒儲存卡可不可移除,不可移除就是手機將sd卡內建到了手機中,所以在使用的時候可以這樣判斷:

if (environment.media_mounted.equals(environment.getexternalstoragestate())

|| !environment.i***ternalstorageremovable()) else

關於android獲取sd卡路徑的方法

專案中使用到了離線資料,資料庫可能比較大,平板本身容量有限,就想到了資料儲存到sd卡上。由於android裝置五花八門,sdk裡面也沒有給出明確的獲取sd卡的方法,自己網上找了個,測試三星平板目前沒問題,方法如下 獲取sd卡路徑 param mcontext param is removale re...

android 獲取外接sd卡根目錄

android獲取外部sdcard的官方呼叫是 environment.getexternalstoragedirectory 但是根據不同機型,是有不同的結果的。通過 android 的api可以獲取系統內建的sdcard存貯目錄,但是有些機器本身具有內建的sdcard存貯卡又可以外接sd卡,這樣...

Android 6 0 SD卡路徑獲取

android6.0 上會根據卡的種類和卡的掛載狀態來動態生成掛載路徑,因此不建議大家在按照以前的方法獲取外接sd 卡或者usbotg 的路徑,建議按照以下方法來獲取 storagemanagermstoragemanager storagemanager.from context finallis...