1. 程式人生 > >Android 6.0上sdcard和U盤路徑獲取和區分

Android 6.0上sdcard和U盤路徑獲取和區分

/**
     * 6.0獲取外接sdcard和U盤路徑,並區分
     * @param mContext
     * @param keyword  SD = "內部儲存"; EXT = "SD卡"; USB = "U盤"
     * @return
     */
    public static String getStoragePath(Context mContext,String keyword) {
        String targetpath = "";
        StorageManager mStorageManager = (StorageManager) mContext
                .getSystemService(Context.STORAGE_SERVICE);
        Class<?> storageVolumeClazz = null;
        try {
            storageVolumeClazz = Class.forName("android.os.storage.StorageVolume");
            
            Method getVolumeList = mStorageManager.getClass().getMethod("getVolumeList");
            
            Method getPath = storageVolumeClazz.getMethod("getPath");
                  
            Object result = getVolumeList.invoke(mStorageManager);
            
            final int length = Array.getLength(result);
            
            Method getUserLabel = storageVolumeClazz.getMethod("getUserLabel");
            
            
            for (int i = 0; i < length; i++) {
                
                Object storageVolumeElement = Array.get(result, i);
               
                String userLabel = (String) getUserLabel.invoke(storageVolumeElement);
                
                String path = (String) getPath.invoke(storageVolumeElement);
                
                if(userLabel.contains(keyword)){
                    targetpath
= path;
                }

            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
        return targetpath
;
    }

相關推薦

Android 6.0sdcardU路徑獲取區分

/**      * 6.0獲取外接sdcard和U盤路徑,並區分      * @param mContext      * @param keyword  SD = "內部儲存"; EXT = "SD卡"; USB = "U盤"      * @return      */     public stat

Android 6.0以上版本使用 Localsocket 與 ParcelFileDescriptor 獲取視訊流導致MediaRecorder start failed的問題

因為這段時間一直在搞Android音視訊相關的問題,遇到一個需求就是需要獲取實時的錄影資料,所以就需要獲取MediaRecorder的流資料,因為之前一直未做過相關需求,所以最後Google了一番,發現可以使用Localsocket和ParcelFileDescriptor 來獲取,但是設定之後發現

嵌入式linux 實現mdev SD卡U自動掛載解除安裝的方法 mdev.conf

首先先參考這些部落格做一些瞭解:http://linux.chinaunix.net/techdoc/install/2009/11/18/1144936.shtml http://www.cnblogs.com/leaven/archive/2010/09/17/1828

Android 6.0區別USD卡裝置

public static boolean isSdcardExists(Context context) { StorageManager storageManager =

Mac下載編譯Android 6.0原始碼詳細記錄

第一步: 使用命令建立一個字尾為.dmg或.dmg.sparseimage的映象檔案 $ hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 80g ~/

android 6 0許可權全面詳細分析解決方案

原文: http://www.2cto.com/kf/201512/455888.html http://blog.csdn.net/yangqingqo/article/details/48371123 http://inthecheesefactory.com/blog/things-y

android 4.4 編譯需要make 3.81 , android 6.07.1編譯需要make 4.1

android 4.4 編譯需要make 3.81 ,   android 6.0和7.1編譯需要make 4.1 從http://ftp.gnu.org/gnu/make/ 這裡,分別下載make-3.81.tar.gz 和make-4.1.tar.gz 分別

[sg] Android 6.0 修改系統預設時區修改12小時製為24小時制

修改預設時區 在最終編譯出的配置檔案build.prop增加屬性 persist.sys.timezone=Asia/Shanghai (我這裡預設選擇東八區上海,其他對應的時區在frameworks\base\core\res\res\xml\time_z

Android 6.0執行時許可權申請一些坑

1.概述 大家知道在Android6.0(Api23)之前,使用者許可權的申請都是在AndroidManifest.xml 宣告的,而在6.0之後,對某些涉及到使用者隱私的許可權可在執行時根據使用者的需要動態授予。如果你的應用設定targetSdkVersio

android 6.0許可權全面詳細分析解決方案

原文: http://www.2cto.com/kf/201512/455888.html http://blog.csdn.net/yangqingqo/article/details/48371123 http://inthecheesefactory.com/blog

如何避開Android 6.0新增的特性獲取IMEI讀寫記憶體卡許可權

在Android 6.0之後新增了動態許可權,比如獲取IMEI,寫入外接儲存卡的時候需要新增動態許可權。關於動態許可權參考文章。我們在新增動態許可權的時候都需要回調Activity裡面的onRequestPermissionsResult(int requestCode,St

android 6.0 動態申請許可權的基本方法框架使用】

基本的使用: 先提供一下goog官方的學習文件: int selfPermission = ContextCompat.checkSelfPermission(Main2Activity.this, Manifest.permission.CA

程式設計師修電腦必備: 使用Grub2製作一個多系統(WinPE與Linux, Android X86)啟動的維護行動硬碟U

說明 多臺計算機安裝了不同的系統(Windows, Linux, MacOS), 如果要對系統進行重灌或者維護, 每一次都是重新制作啟動和維護移動儲存裝置, 為了節省時間, 考慮製作一個即可啟動和維護Windows的也可以啟動和安裝Linux的多啟動移動儲存裝置. 現代的電

Android 拍照相簿功能(適配Android 6.07.0系統華為機型問題)

眾所周知,呼叫相機拍照和相簿中獲取圖片的功能,基本上是每個程式App必備的。 實現適配Android每個版本,國內手機,要處理的問題卻也不少。例如:Android6.0許可權問題,Android7.0 FileProvider問題,華為手機相簿獲取不到圖片的問

android 6.0 textview 跑馬燈失效出現抖動的解決方法

最近搞個專案,要在地圖上顯示天氣資訊,我使用了個textview加跑馬燈效果進行滾動顯示,一切都很正常。 前幾天測試在6.0系統的機子上進行了測試,發現跑馬燈失效了,一直在抖動。感覺像是6.0相容性上

android studio 適配android7.0 android 6.0拍照呼叫系統裁剪工具實現頭像傳功能

之前在做新專案是把以前的上傳頭像功能複製過來,執行發現閃退了,當時就是各種排除,然後用模擬器執行是沒問題的,但是用真機執行就報錯,然後各種篩查,還是無果,然後我就想是不是手機問題手機不相容,於是我用相同型號的手機測試發現同樣可以使用就我的手機不能使用,當時就陷入沉思,唉是不

從源碼剖析PopupWindow 兼容Android 6.0以上版本點擊外部不消失

並且 gif upd 兼容 addview 初始 一個地方 || ping PopupWindow可以說是Google坑最多的一個控件,使用PopupWindow的時候沒有遇到幾個坑你都不好意思說你用過它,說一個可能大多數人都遇到過的一個坑:那就是我們想觸摸PopupWin

ProgressBar的indeterminateDrawable屬性在安卓6.0的問題

tag sha ont progress utf-8 ++ Coding nat 圓形 通過indeterminateDrawable屬性去自己定義ProgressBar方法: <ProgressBar android:i

Android 6.0 - 動態權限管理的解決方案(轉)

long div span 添加 包含 detail 工具類 putextra ref 轉自:http://www.cnblogs.com/dubo-/p/6018262.html Android 6.0 - 動態權限管理的解決方案 轉載請標註 Android 6.

基於kickstart實現網絡共享以及制作光U實現半自動安裝centos6系統

centos 一、使用kickstart實現網絡共享半自動化安裝。 ①在centos6上安裝system-config-kickstart、ftpd包。 ②使用system-config-kickstart命令,編輯裏面的內容,該文件生成ks.cfg文件。 修改完之後在File菜單中選擇Sa