2012-12-01 23 views
5

sdcard'ın kök klasörüne doğrudan erişmesi gereken bir uygulama geliştiriyorum, ancak Android 4.2'de göründüğü gibi, standart/sdcard dizini şimdi kullanıcıya özgü "taklit" sdcard'ı işaret ediyor uygulamayı çalıştırıyor. Uygulamamın sdcard'ın en üst düzeyinde depolanan bir dosyaya erişim gerektirmesi nedeniyle bu iyi değil. Android 4.2'de sdcard'a doğrudan nasıl erişileceğini bilen var mı?Access/sdcard in Android 4.2

+0

bu gerçek bir çıkarılabilir SD kart var mı? Gördüğüm 4.x cihazlarda, gerçekte sdcard yok, sadece dahili depolama hacminin bir benzetimi var, bu yüzden amaç anlamsız olurdu. Fiziksel bir kart varsa, adb kabuğunun 'mount' komutuna bakabilir ve nasıl ele alındığını görebilirsiniz. –

+0

Yanlış anlıyorsunuz gibi görünüyor. Sanal olsa bile, her zaman bir/sdcard bölümü vardır. Fakat 4.2 güncellemesiyle,/sdcard'ın kullanımı tamamen farklıdır. (Kodda) sdcard bölümü erişme artık * gerçek */sdcard edinebileceğiniz, geçerli kullanıcıya özel olan sdcard bir sanal "bölümü" sizi işaret ediyor. Gelişmekte olduğum uygulamanın cihazdan bağımsız olarak 4.2'nin altında Android sürümlerinde çalıştığını unutmayın. o aynı konuda şikayet nerede – Drew

+0

Koushik Dutta (ROM Manager geliştirici) tarafından bu yazı bakın. https://plus.google.com/103583939320326217147/posts/D7mZBjTJj5j – Drew

cevap

2

Depolama dizini Dosya türü olarak kullanılabilir mi? (java.io.File)

Eğer öyleyse, böyle senin yönteminde bu gibi dış depolama alanı alabilirim (Genellikle SD kart, ancak hiçbir SD kart ile telefonlarda ana depolama olacaktır) kodunu kullanarak:

File path = Environment.getExternalStorageDirectory(); 

herhangi bir veri değiştirilirse WRITE_EXTERNAL_STORAGE gerekli edilir - Ayrıca, depolama erişimi Android Manifest'te READ_EXTERNAL_STORAGE izin gerektirir. İşte manifest'te göründüğü şekilde bu izinlerin şunlardır:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

Kaynaklar:

http://developer.android.com/reference/android/os/Environment.html Belki http://developer.android.com/reference/android/Manifest.permission.html

+0

Şu anda kullandığım budur, ancak sorun Android 4.2'de/sdcard (ExternalStorageDirectory) bölümünün gerçek köküne değil,/sdcard (ExternalStorageDirectory) bölümündeki kullanıcıya özel bir konuma yönlendirilir. – Drew

+0

Aah, anladım - üzgünüm, sorunuzu yanlış anladım. – Alex6642122

1

benim Nexus Galaxy çalıştıran Android 4.2.1 ile, ancak, sorunuzu yanlış anlama am SD kartıma Environment.getExternalStorageDirectory() kullanarak erişebilirim. döndürülen dizin /storage/emulated/0 olmakla içerik /sdcard ait olmasıdır.

+0

Orada depoları hakkında bazı doc, ancak 4.4 source.android.com/devices/tech/storage/config-example.html ve doubleencore.com/2014/03/android-external-storage için – pevik