2013-03-15 136 views
11

我有一堆來自不同供應商的Android設備。一些Android設備將內部存儲視爲SD卡和外部存儲EXTSD

它們中的一些附連的/ mnt/SD卡的內部存儲和/ MNT/extsd到 外部存儲裝置(方案1)和其他附加的/ mnt/SD卡到外部存儲設備(場景2)

我認爲第二種情況是標準的,因爲Android API提供了這個路徑的句柄。現在問題是,在場景1中,/mnt/extsd變爲readonly即使有WRITE_EXTERNAL_STORAGE權限!

這意味着我只能從實際的外部SD卡讀取數據,無法寫入數據。

是否有解決方法,因此我可以寫入extsd文件夾?

+1

這是我更好要問的問題這個社會:https://android.stackexchange.com/ – noraj 2017-08-10 16:57:16

回答

0

唯一的解決辦法,到目前爲止我發現來獲得設備上寫訪問生根設備:(

三星提供了一個解決辦法:與清單條目

更多細節在可用以下鏈接

http://www.xda-developers.com/android/android-3-2-code-inadvertently-preventing-write-access-to-external-storage/

http://www.chainfire.eu/articles/113/Is_Google_blocking_apps_writing_to_SD_cards_/

摘錄:

這似乎是谷歌在那 針對Android 3.2,這會影響介紹了他們的AOSP代碼中的錯誤是怎麼OS處理USB 存儲,並且可以防止SD卡的寫訪問和USB棒。 XDA 精英認可的開發者,資深主持人和新聞作家 Chainfire總結了這一問題在他的博客:

「在過去,一個應用程序將請‘WRITE_EXTERNAL_STORAGE’ 許可,這將給予所有寫訪問外部存儲器 (用戶/組「sdcard_rw」)。顯然已將其更改爲僅對 授予對主外部存儲器的寫入訪問權限。第二個 權限已被引入,名爲「WRITE_MEDIA_STORAGE」,其中 將授予對其他外部存儲的訪問權限(用戶/組 「media_rw」)。

問題是,第三方實際上不會被授予這個 權限,只有製造商提供的系統應用和應用程序 通常會被授予此權限。有 例外,顯然在某些設備上的第三方應用程序將是 授予此權限,但根據AOSP源,他們肯定 不應該。」

+0

在一個根植設備上,你將如何解決這個問題?例如,Cubieboard默認爲root,內部SD非常小,但默認情況下,應用程序無法向外部寫入 – TimothyP 2013-04-20 07:57:30

4
Environment.getExternalStorageState() returns path to internal SD mount point like "/mnt/sdcard" 

Environment.getExternalStorageDirectory()指無論設備製造商認爲是「外部存儲」。在某些設備上,這是可移動媒體,如SD卡。在某些設備上,這是設備上閃光燈的一部分。在這裏,「外部存儲」是指「安裝在主機上時可通過USB大容量存儲模式訪問的東西」,至少對於Android 2.x及以上版本而言。

But the question is about external SD. How to get a path like "/mnt/sdcard/external_sd" (it may differ from device to device)? 

除了外部存儲,Android沒有「外部SD」的概念,如上所述。

如果設備製造商選擇將外部存儲設備設置爲板載閃存並且還具有SD卡,則需要聯繫該製造商以確定您是否可以使用SD卡(不保證)以及什麼規則是使用它的,比如使用什麼路徑。

4

在有根設備,你可以改變你/system/etc/permissions/platform.xml「修理」的權限問題,我下面的工作:

  • 亞行拉/system/etc/permissions/platform.xml
  • 修改平臺。 xml使media_rw包含在WRITE_EXTE中RNAL_STORAGE允許這樣的:

    <permission name="android.permission.WRITE_EXTERNAL_STORAGE" > 
        <group gid="sdcard_rw" /> 
        <group gid="media_rw" /> 
    </permission> 
    
  • 亞行推platform.xml /system/etc/permissions/platform.xml

  • 重啓設備
+0

謝謝,這對我來說確實如此。我不明白爲什麼谷歌會強制執行這樣的權限限制。 – ebernie 2013-05-12 18:28:34

+2

這是一個用戶解決方案,而不是開發人員解決方案。 – aleb 2013-05-17 16:49:21