Ich entwickle eine App, die direkten Zugriff auf den Stammordner der SD-Karte benötigt, aber es scheint in Android 4.2, das Standard/SDCard-Verzeichnis zeigt jetzt eine "emulierte" SD-Karte für den Benutzer Ausführen der App Das ist nicht gut, da meine App Zugriff auf eine Datei benötigt, die auf der obersten Ebene der SD-Karte gespeichert ist. Kann jemand direkt auf die SD-Karte in Android 4.2 zugreifen?Zugriff/sdcard in Android 4.2
Antwort
Können Sie das Speicherverzeichnis als Dateityp verwenden? (java.io.File
)
Wenn ja, können Sie den externen Speicher erhalten (In der Regel SD-Karte, werden aber Hauptspeicher sein auf Handys ohne SD-Karte) mithilfe von Code wie dies in Ihrer Methode:
File path = Environment.getExternalStorageDirectory();
Zusätzlich benötigt der Speicherzugriff READ_EXTERNAL_STORAGE
Erlaubnis in Ihrem Android Manifest - mit WRITE_EXTERNAL_STORAGE
wird benötigt, wenn irgendwelche Daten geändert werden. Hier sind diese Berechtigungen, wie sie im Manifest erscheinen würden:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Quellen:
http://developer.android.com/reference/android/os/Environment.html http://developer.android.com/reference/android/Manifest.permission.html
Das ist, was ich derzeit verwende, aber das Problem ist, dass in Android 4.2 es nicht zum eigentlichen Stamm der/sdcard (ExternalStorageDirectory) Partition, sondern zu einem speziellen benutzerspezifischen Speicherort auf der/sdcard (ExternalStorageDirectory) Partition umgeleitet wird. – Drew
Aah, ich verstehe - Entschuldigung, ich habe deine Frage missverstanden. – Alex6642122
Vielleicht bin ich Missverständnis Ihre Frage, aber mit meinem Galaxy Nexus mit Android 4.2.1 Ich kann mit Environment.getExternalStorageDirectory()
auf meine SD-Karte zugreifen. Das zurückgegebene Verzeichnis ist /storage/emulated/0
, aber der Inhalt ist der von /sdcard
.
Es gibt einige Dokumente über Speicher, aber für 4.4 source.android.com/devices/tech/storage/config-example.html und doubleencore.com/2014/03/android-external-storage – pevik
- 1. android.os.NetworkOnMainThreadException mit Android 4.2
- 2. Android 4.2 RadioButton Android: DrawableLeft Bug?
- 3. Wählen Box Stil in Android 2.3 anders als Android 4.2
- 4. Android 4.2 filtert die CHANGE_CONFIGURATION-Berechtigung aus?
- 5. toUpperCaseLocale() vs toUpperCase() - Jetzt Android Targeting 4.2
- 6. Verwenden Standard ShapeDrawable in einer StateListDrawable in Android 4.2
- 7. Eclipse-4.2 ADT Plugin
- 8. Problem beim Laden benutzerdefinierter Schriftarten in Android 4.2 (API 17)
- 9. isChecked() Verhalten genau gegenüber in 2.3.6 und 4.2 Android Versionen
- 10. So zeigen Sie das Optionsmenü in Android 4.2
- 11. Wie fügt man ein Widget in Android 4.2 Emulator?
- 12. Verlorene Frameworks in iOS 4.2
- 13. Session Probleme in Homestead 4.2
- 14. UITextField Textausrichtung in ios 4.2
- 15. Verwendung von Mipmap Launcher Icons vor Android 4.2?
- 16. Android 4.2 - Schlechter Text Render - Text flackert und wird geschnitten
- 17. Warum Android 4.2 wird versuchen Ressource von ziehbar-xhdpi-v4
- 18. Android 4.2 auf Nexus 7: canvas.drawText() funktioniert nicht richtig
- 19. Laravel 4.2 automatisches Laden
- 20. Verwendet Rails 4.2 secret_token?
- 21. ExtJS 4.2: Wie
- 22. Speicherproblem iPad 4.2 Abstürze
- 23. securize database.php Laravel 4.2
- 24. SSE 4.2 CSV-Dateianalyse
- 25. UILocalNotification und iOS 4.2
- 26. Laravel 4.2: Testfall Autoloading
- 27. Fortify 4.2 SSC Fehlerverarbeitung
- 28. Laravel 4.2 weiterhin Routing
- 29. xcode 4.2 mit ios5.1
- 30. ExtJs 4.2 Designs
Ist dies eine tatsächliche entfernbare SD-Karte? Auf den 4.x-Geräten, die ich gesehen habe, gibt es wirklich keine SD-Karte, nur eine Emulation von einem innerhalb des internen Speichervolumens, so dass das Ziel bedeutungslos wäre. Wenn es eine physische Karte gibt, könntest du mit dem Befehl 'mount' der adb-Shell nachsehen, wie sie gehandhabt wird. –
Sie scheinen ein Missverständnis zu sein. Es gibt immer eine/sdcard-Partition, auch wenn sie virtuell ist. Aber mit dem 4.2 Update ist die Handhabung von/sdcard völlig anders. Zugriff auf die SD-Karte Partition (in Code) zeigt nicht mehr auf die * real */SD-Karte, es verweist Sie auf eine virtuelle "Partition" der SD-Karte, die spezifisch für den aktuellen Benutzer ist. Beachten Sie, dass die App, die ich entwickle, bei Android-Versionen unter 4.2 problemlos funktioniert, unabhängig vom Gerät. – Drew
Sehen Sie diesen Beitrag von Koushik Dutta (dem Entwickler von ROM Manager), wo er sich über das gleiche Problem beschwert. https://plus.google.com/103583939320326217147/posts/D7mZBjTJj5j – Drew