Android獲取外部存儲(chǔ)設(shè)備路徑

StorageManager類中,以下三個(gè)接口都被標(biāo)注為@hide:

getVolumePaths()
返回全部存儲(chǔ)卡路徑, 包括已掛載的和未掛載的.
即: 有外置存儲(chǔ)卡卡槽的機(jī)器,即使未插入外置存儲(chǔ)卡,其路徑也會(huì)被這個(gè)接口列出.
要判斷某個(gè)掛載點(diǎn)的狀態(tài),可以用第三個(gè)接口.

getVolumeList()
返回全部 StorageVolume 類的數(shù)組,這個(gè)類也是 @hide 的.
該類提供了更詳細(xì)的關(guān)于每個(gè)掛載點(diǎn)的信息

getVolumeState(String mountPoint)
返回某個(gè)掛載點(diǎn)代表的存儲(chǔ)卡的狀態(tài). 即 Environment 中的幾個(gè)常量(未全部列出):

獲取所有路徑getVolumePaths() 通過(guò)反射機(jī)制獲取具體掛載信息

 protected void openDocumentTree() {
        //super.openDocumentTree();
        final StorageManager sm = (StorageManager) this.getSystemService(Context.STORAGE_SERVICE);
        String[] volumePaths = new String[0];
        try {
            final Method method = sm.getClass().getMethod("getVolumePaths");
            if(null != method) {
                method.setAccessible(true);
                volumePaths = (String[]) method.invoke(sm);
            }
        }catch (Exception e){
            e.printStackTrace();
        }
}

volumePaths[i]即為外部設(shè)備路徑 loadFileByPath加載內(nèi)部數(shù)據(jù)即可

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容