中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-09-12 18:32:48 來源:腳本之家 閱讀:131 作者:JulyAnRef 欄目:移動開發

Android6.0上會根據卡的種類和卡的掛載狀態來動態生成掛載路徑,所以之前寫固定路徑的辦法不可用,最后通過網上查找和分析android源碼,通過反射獲取到路徑,并且進行了正確區分,代碼如下:

/**
  * 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 ;
 }

這里拿到的userLabel就是系統給每個盤的一個label,用來區分是內部存儲、sdcard還是U盤,內卡的label固定,但是sdcard和U盤的label是根據種類,狀態等信息等動態生成,所以這里“if(userLabel.contains(keyword)){”沒有用equals。

總結:不懂看源碼

以上這篇Android 6.0上sdcard和U盤路徑獲取和區分方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

将乐县| 通州市| 多伦县| 自贡市| 皋兰县| 庆安县| 台湾省| 丁青县| 阿巴嘎旗| 察隅县| 长岛县| 兴隆县| 阳东县| 三河市| 南阳市| 香格里拉县| 建昌县| 枣阳市| 通海县| 永寿县| 鄯善县| 白沙| 康平县| 盱眙县| 扶余县| 驻马店市| 四川省| 商城县| 栾川县| 建阳市| 通河县| 鹿泉市| 普格县| 正阳县| 天气| 保定市| 贵定县| 泰兴市| 德保县| 永清县| 宝丰县|