最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android 6.0上sdcard和U盤路徑獲取和區(qū)分方法

 更新時間:2018年08月02日 09:28:25   作者:JulyAnRef  
今天小編就為大家分享一篇Android 6.0上sdcard和U盤路徑獲取和區(qū)分方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

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

/**
  * 6.0獲取外置sdcard和U盤路徑,并區(qū)分
  * @param mContext
  * @param keyword SD = "內(nèi)部存儲"; 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就是系統(tǒng)給每個盤的一個label,用來區(qū)分是內(nèi)部存儲、sdcard還是U盤,內(nèi)卡的label固定,但是sdcard和U盤的label是根據(jù)種類,狀態(tài)等信息等動態(tài)生成,所以這里“if(userLabel.contains(keyword)){”沒有用equals。

總結(jié):不懂看源碼

以上這篇Android 6.0上sdcard和U盤路徑獲取和區(qū)分方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

通许县| 莱西市| 罗平县| 洛扎县| 桓台县| 沈阳市| 邛崃市| 杂多县| 米泉市| 喀喇沁旗| 宜州市| 祁连县| 寿阳县| 休宁县| 阜阳市| 长宁区| 丽水市| 肃南| 曲水县| 云南省| 离岛区| 克什克腾旗| 佛教| 新密市| 夏津县| 泸西县| 会理县| 汶川县| 香河县| 鄢陵县| 棋牌| 达拉特旗| 永昌县| 鄂托克前旗| 育儿| 化德县| 班戈县| 安新县| 乐安县| 朝阳区| 东光县|