Sto sviluppando un'applicazione che richiede l'accesso diretto alla cartella radice della sdcard, tuttavia sembra in Android 4.2, la directory standard/sdcard ora punta a una sdcard "emulata" specifica per l'utente eseguire l'app. Questo non va bene, dato che la mia app richiede l'accesso a un file che è archiviato al livello più alto della sdcard. Qualcuno sa come accedere direttamente alla sdcard in Android 4.2?Accesso/sdcard in Android 4.2
risposta
È possibile utilizzare la directory di archiviazione come tipo di file? (java.io.File
)
Se è così, è possibile ottenere l'archiviazione esterna (carta Tipicamente SD, ma sarà memoria principale sui telefoni senza scheda SD) utilizzando il codice come questo nel metodo:
File path = Environment.getExternalStorageDirectory();
Inoltre, l'accesso all'archiviazione richiede l'autorizzazione READ_EXTERNAL_STORAGE
nel tuo Android Manifest - con WRITE_EXTERNAL_STORAGE
necessario se i dati vengono modificati. Qui ci sono queste autorizzazioni come apparirebbero nel manifesto:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Fonti:
http://developer.android.com/reference/android/os/Environment.html http://developer.android.com/reference/android/Manifest.permission.html
Questo è quello che utilizzo attualmente, ma il problema è che in Android 4.2 viene reindirizzato non alla radice effettiva della partizione/sdcard (ExternalStorageDirectory), ma a una posizione specifica dell'utente specifica nella partizione/sdcard (ExternalStorageDirectory). – Drew
Aah, vedo ... scusa ho frainteso la tua domanda. – Alex6642122
Forse sto equivoco tua domanda, tuttavia, con il mio Nexus Galaxy in esecuzione Android 4.2.1 Posso accedere alla mia scheda SD utilizzando Environment.getExternalStorageDirectory()
. La directory restituita è /storage/emulated/0
, ma il contenuto è quello di /sdcard
.
Alcuni documenti sugli archivi, ma per 4.4 source.android.com/devices/tech/storage/config-example.html e doubleencore.com/2014/03/android-external-storage – pevik
- 1. android.os.NetworkOnMainThreadException con android 4.2
- 2. Android 4.2 RadioButton android: drawableLeft bug?
- 3. L'interfaccia Javascript non funziona con Android 4.2
- 4. Problemi nell'installazione di API Android 4.2
- 5. toUpperCaseLocale() vs toUpperCase() - Ora mira Android 4.2
- 6. Android 4.2 e superiori leggere l'impostazione APN
- 7. Dimensioni dell'icona della barra delle azioni in Android 4.2
- 8. Come mostrare il menu di opzioni in Android 4.2
- 9. PhoneGap 2.4.0 con Android 4.2 - strano comportamento doppio clic
- 10. GLSurfaceView che visualizza nero su Nexus 7 con Android 4.2
- 11. Facebook Login non funziona quando uso Samsung Android 4.2
- 12. Tutorial per ServiceMix 4.2
- 13. Xcode 4.2 SIGABRT Errore
- 14. Rails 4.2 stranieri chiave
- 15. Bitbucket + XCode 4.2 + Git
- 16. ExtJs 4.2 Temi
- 17. XCode 4.2 Rinomina target
- 18. Come abilitare il supporto multiutente in AVD 4.2
- 19. Come configurare correttamente Pry in Rails 4.2
- 20. Come aggiungere Entitlement.plist in xCode 4.2
- 21. Cosa c'è di nuovo in OSGi 4.2?
- 22. Pacchetto impostazioni vuoto in Xcode 4.2
- 23. Caricamento file in extjs 4.2 senza forma.submit()
- 24. orderBy su whereHas query in Laravel 4.2
- 25. Guardia Malloc in Xcode 4.2. Dov'è?
- 26. File "iostream" non trovato in Xcode 4.2
- 27. Xcode 4.2 Prodotto -> Esegui in grigio
- 28. ExtJS 4.2 parametri in funzione ascoltatori
- 29. JSONObject non funziona per Android 2.3 ma funziona bene con Android 4.2, perché?
- 30. laravel 4.2: Test Case Autoloading
È una scheda SD rimovibile? Sui dispositivi 4.x che ho visto, non c'è davvero alcuna sdcard, solo un'emulazione di uno all'interno del volume di archiviazione interno, quindi l'obiettivo sarebbe privo di significato. Se c'è una carta fisica puoi guardare con il comando 'mount' della shell adb e vedere come viene gestita. –
Sembra che tu stia fraintendendo. C'è sempre una partizione di/sdcard, anche se è virtuale. Ma con l'aggiornamento 4.2, la gestione di/sdcard è completamente diversa. L'accesso alla partizione sdcard (nel codice) non punta più alla * reale */sdcard, punta a una "partizione" virtuale della sdcard che è specifica per l'utente corrente. Ricorda che l'app che sto sviluppando funziona perfettamente con le versioni Android inferiori a 4.2, indipendentemente dal dispositivo. – Drew
Vedi questo post di Koushik Dutta (lo sviluppatore di ROM Manager) dove si lamenta dello stesso problema. https://plus.google.com/103583939320326217147/posts/D7mZBjTJj5j – Drew