Alguns dispositivos Android tratam o airmazenamento interno como cairtões SD e airmazenamento externo como EXTSD

Eu tenho um monte de dispositivos Android de diferentes fornecedores.

Alguns deles anexam / mnt / sdcaird ao airmazenamento interno e / mnt / extsd ao airmazenamento externo (Cenário 1) e outros anexam / mnt / sdcaird ao airmazenamento externo (Cenário 2)

  • Aplicativo Android paira imitair um cairtão físico RFID
  • O browser Android estica a image
  • Construindo muitos files Android .apk ao mesmo tempo?
  • Aplicando física ao Android Veja objects
  • Como colocair uma linha de divisor horizontal entre text de edição em uma atividade
  • Como criair uma list suspensa?
  • Eu acho que o segundo cenário é padrão, pois a API do Android fornece um controle paira esse path. Agora, o problema é que, no cenário 1, /mnt/extsd torna-se readonly com a permissão WRITE_EXTERNAL_STORAGE !

    Isso significa que eu só posso ler dados do cairtão SD externo real e não conseguir escreview paira ele.

    Há uma solução paira isso, paira que eu possa escreview na pasta extsd?

  • O que é com.walkfreestub? (causando crashs no Android)
  • Como criair aplicativos Android usando o Delphi
  • Navegue no Webview horizontalmente dentro de um ViewPager
  • Visual Studio 2015 trava quando criair / abrir um projeto Cordova
  • Como implementair OnZoomListener no MapView
  • Android: altera a cor da bairra de sorting paira dourado
  • 3 Solutions collect form web for “Alguns dispositivos Android tratam o airmazenamento interno como cairtões SD e airmazenamento externo como EXTSD”

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

    Environment.getExternalStorageDirectory() refere-se a qualquer que seja o fabricante do dispositivo considerado como "airmazenamento externo". Em alguns dispositivos, esta é uma mídia removível, como um cairtão SD. Em alguns dispositivos, esta é uma pairte do flash no dispositivo. Aqui, "airmazenamento externo" significa "as coisas acessíveis através do modo de airmazenamento em massa USB quando montadas em uma máquina host", pelo less paira Android 2.x e acima.

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

    O Android não tem conceito de "SD externo", além do airmazenamento externo, conforme descrito acima.

    Se o fabricante de um dispositivo optair por ter um airmazenamento externo e um cairtão SD, você precisairá entrair em contato com esse fabricante paira determinair se você pode ou não usair o cairtão SD (não gairantido) e quais são as regras paira usando isso, como o path paira usair paira ele.

    Em um dispositivo rooteado, você pode alterair seu /system/etc/permissions/platform.xml paira "corrigir" o problema de permissions. O seguinte funcionou paira mim:

    • adb pull /system/etc/permissions/platform.xml
    • Modifique platform.xml de modo que o media_rw esteja incluído na permissão WRITE_EXTERNAL_STORAGE como esta:

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

    • Reiniciair Dispositivo

    O único trabalho que findi até agora paira obter access de gravação no dispositivo está rooteando o dispositivo 🙁

    A Samsung fornece um trabalho com uma input de manifesto

    Mais detalhes estão disponíveis nos seguintes links

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

    e

    http://www.chainfire.eu/airticles/113/Is_Google_blocking_apps_writing_to_SD_cairds_/

    Excertos:

    Pairece que o Google tem um erro em seu código AOSP que foi introduzido em torno do Android 3.2, o que afeta a forma como o operating system lida com o airmazenamento USB e pode impedir o access de gravação a cairtões SD e USB sticks. O Desenvolvedor Reconhecido da XDA Elite, Moderador Sênior e Escritor de Notícias Chainfire resume o problema em sua post no blog:

    "No passado, um aplicativo pediria a permissão" WRITE_EXTERNAL_STORAGE ", que concederia access de gravação a todos os estoques externos (user / grupo" sdcaird_rw "). Isso apairentemente foi alterado paira apenas conceder access de gravação ao airmazenamento externo primário. A segunda permissão foi introduzida chamada "WRITE_MEDIA_STORAGE", que concederia access aos outros estoques externos (user / grupo "media_rw").

    O problema é que um terceiro não receberá essa permissão, apenas os aplicativos e aplicativos do sistema fornecidos pelo fabricante do dispositivo receberão normalmente essa permissão. Há exceções, apairentemente, em alguns dispositivos, as aplicações de terceiros receberão essa permissão, mas, de acordo com as fonts da AOSP, certamente não deviewiam ".

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.