2013-03-15 11 views
11

Farklı satıcılardan bir grup Android cihazım var.Bazı Android aygıtlar Dahili Depolama'yı SD Kartlar ve Harici Depolama olarak kabul ederler. EXTSD

Bazıları/mnt/sdcard harici depolama (Senaryo 1) ve diğer dahili depolama ve/mnt/extsd takmak takmak/mnt/sdcard harici depolama (Senaryo 2)

için Android API bu yol için bir tutamaç sağladığı için ikinci senaryo standarttır. Şimdi sorun, senaryo 1, /mnt/extsdWRITE_EXTERNAL_STORAGE izin ile bile readonly olur!

Bu, yalnızca gerçek harici SD karttaki verileri okuyabildiğim ve ona yazamadığım anlamına gelir.

Bunun için bir çözüm var mı, bu yüzden extsd klasörüne yazabilirim?

+1

O var benim bu topluma soru sormak iyi olabilir : https://android.stackexchange.com/ – noraj

cevap

0

ben cihazda yazma erişimi elde etmek şimdiye kadar bulduğum etrafında tek iş cihazı köklenme :(

Samsung

fazla detay mevcuttur bir bildirim girişi ile bir çalışma etrafında sağlar aşağıdaki bağlantılar

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

ve

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

alıntılar:

Google'ın etkiler Android 3.2, etrafında tanıtıldı oldu onların AOSP kodunda bir hata var gibi görünüyor nasıl OS USB Depolama kolları ve SD kartlar yazma erişimi engelleyebilir ve USB çubukları. XDA Elit Tanınan Geliştirici, Kıdemli Moderatör ve Haber Yazar Chainfire onun blog yazısında konuyu özetliyor:

tüm yazma erişimi tanınmasını öngören WRITE_EXTERNAL_STORAGE ‘ izni, "Geçmişte, bir uygulama talep edeceğini’ Dış depolamalar (kullanıcı/grup “sdcard_rw“) .Bu, birincil harici depolama alanına yalnızca hibe yazma erişimi olarak değiştirilmiştir.İkinci izni diğer harici depolama (kullanıcı/grup “media_rw“) erişim izni hangi , “WRITE_MEDIA_STORAGE” denilen tanıtıldı.

Sorun, üçüncü şahıslara bu izni verilmez, yalnızca numaralı üretici tarafından sağlanan sistem uygulamaları ve uygulamaları bu izni normal olarak verilecektir. Orada görünüşte bu izni üçüncü taraf uygulamalar olacak bazı cihazlarda istisnalar vardır ama AOSP kaynaklara göre onlar kesinlikle gerekiyordu değiliz." Bir köklü Cihazda

+0

Köklü bir cihazda bunu nasıl düzeltebilirsiniz? Bu benim için yaptı, Cubieboard varsayılan olarak köklü bir Örneğin, dahili SD çok küçük ama uygulamalar varsayılan olarak dış olanları – TimothyP

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

Environment.getExternalStorageDirectory() "harici depolama" olarak kabul hangi cihazı üreticisi ifade eder. Bazı cihazlarda, bu bir SD kart gibi çıkarılabilir medyadır. Bazı cihazlarda, bu cihazdaki flaşın bir kısmıdır. Burada, "harici depolama", "en azından Android 2.x ve üstü için", bir ana makineye monte edildiğinde USB Yığın Depolama modu aracılığıyla erişilebilen şeyler anlamına gelir.

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, yukarıda açıklandığı gibi harici depolama dışında, "harici SD" kavramına sahip değildir. Bir aygıt üreticisinin harici bir depolama kartına sahip olması ve aynı zamanda bir SD kartına sahip olması durumunda, SD kartını kullanıp kullanamayacağınızı (garanti edilmez) ve ne yapıp yapmadığınızı belirlemek için bu üreticiye başvurmanız gerekecektir. Kurallar, bunun için hangi yolun kullanılacağı gibi, onu kullanmak içindir.

4

, değiştirebileceğiniz senin /system/etc/permissions/platform.xml izin sorununu "çözmek" için benim için çalıştı aşağıdaki:.

  • adb pull /system/etc/permissions/platform.xml
  • Değiştir platformu. xml media_rw WRITE_EXTE içinde yer alır Böyle RNAL_STORAGE izni:

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

  • Yeniden Cihaz
+0

sayesinde yazamazsınız. Google'ın bu gibi izin kısıtlamalarını neden uygulayacağını anlayamıyorum. – ebernie

+2

Bu kullanıcı çözümü, geliştirici çözümü değil. – aleb

İlgili konular