在2.x的版本中,在manifest中配置的許可權android.permission.WRITE_EXTERNAL_STORAGE確實是用來使得sd卡獲得寫的許可權。而在4.0開發的原始碼當中,由於有了內外接sd卡的區分,android.permission.WRITE_EXTERNAL_STORAGE的許可權用來設定了內建sd卡的寫許可權,如果在manifest中只是配置了這個許可權,那個應用只能在內建sd卡中進行寫操作,還是無法在外接sd卡中進行寫操作。
需要寫外接sd卡的話,需要配置另一個許可權android.permission.WRITE_MEDIA_STORAGE,這樣就可以在外接sd卡中進行寫入操作了。
這兩個許可權都被定義在 android原始碼目錄\frameworks\base\data\etc\platform.xml中:
使用到的類主要是framework/base/core/java/android/os/storage/StorageVolume.java及相同目錄下的StorageManager.java檔案。
StorageManager類可以獲得所有的儲存媒體列表,及StorageVolume型別的陣列,從而可以獲得對應儲存是否可讀寫一類的資訊。
如果是安卓6.0的外接SD卡的話可以先開啟設定,然後應用程式——應用程式管理器,再開啟某個軟體——儲存——選擇已使用的儲存空間,然後點更改,選擇SD卡,這樣就可以了。
在2.x的版本中,在manifest中配置的許可權android.permission.WRITE_EXTERNAL_STORAGE確實是用來使得sd卡獲得寫的許可權。而在4.0開發的原始碼當中,由於有了內外接sd卡的區分,android.permission.WRITE_EXTERNAL_STORAGE的許可權用來設定了內建sd卡的寫許可權,如果在manifest中只是配置了這個許可權,那個應用只能在內建sd卡中進行寫操作,還是無法在外接sd卡中進行寫操作。
需要寫外接sd卡的話,需要配置另一個許可權android.permission.WRITE_MEDIA_STORAGE,這樣就可以在外接sd卡中進行寫入操作了。
這兩個許可權都被定義在 android原始碼目錄\frameworks\base\data\etc\platform.xml中:
使用到的類主要是framework/base/core/java/android/os/storage/StorageVolume.java及相同目錄下的StorageManager.java檔案。
StorageManager類可以獲得所有的儲存媒體列表,及StorageVolume型別的陣列,從而可以獲得對應儲存是否可讀寫一類的資訊。
如果是安卓6.0的外接SD卡的話可以先開啟設定,然後應用程式——應用程式管理器,再開啟某個軟體——儲存——選擇已使用的儲存空間,然後點更改,選擇SD卡,這樣就可以了。