Nasıl Android 4.0 için harici SD kart yolu alabilir miyim ?
Samsung Galaxy S3 /mnt/extSdCard
monte edilmiş olan extrenal SD kart yuvası var.
Environment.getExternalStorageDirectory()
gibi bir şey bu yolu nasıl? benim sorum: Bu mnt/sdcard
ve harici SD kart için API bulamıyorum dönecektir. (Ya da bazı tabletler üzerine çıkarılabilir USB depolama)
Teşekkür ederim!
CEVAP
here bulduğum bir çözüm üzerinde bir değişiklik var
public static HashSet<String> getExternalMounts() {
final HashSet<String> out = new HashSet<String>();
String reg = "(?i).*vold.*(vfat|ntfs|exfat|fat32|ext3|ext4).*rw.*";
String s = "";
try {
final Process process = new ProcessBuilder().command("mount")
.redirectErrorStream(true).start();
process.waitFor();
final InputStream is = process.getInputStream();
final byte[] buffer = new byte[1024];
while (is.read(buffer) != -1) {
s = s new String(buffer);
}
is.close();
} catch (final Exception e) {
e.printStackTrace();
}
// parse output
final String[] lines = s.split("\n");
for (String line : lines) {
if (!line.toLowerCase(Locale.US).contains("asec")) {
if (line.matches(reg)) {
String[] parts = line.split(" ");
for (String part : parts) {
if (part.startsWith("/"))
if (!part.toLowerCase(Locale.US).contains("vold"))
out.add(part);
}
}
}
}
return out;
}
Orijinal yöntemi denedim ve çalıştı
- X3 (hisse senedi) Huawei
- S2 (hisse senedi) Galaxy
- S3 (hisse senedi) Galaxy
Test ne zaman yapıldı bu hangi emin değilim.
Değiştirilmiş versiyonu ile test ettim
- Kullanıcı deneyimi 4.1.2 (hisse senedi) Moto
- Galaxy Nexus (eğim 10) bağlantı kablosu
- HTC Incredible (eğim 7.2) hem iç hem de dış döndü bu. Bu cihaz bir nevi kendi iç büyük ölçüde getExternalStorage kullanılmamış gibi gidiyor tuhaf() sdcard için bir yol yerine döndürür.
ve bazı ana depolama olarak bir sdcard kullanan depolama aygıtları tek
- G1 (eğim 6.1) HTC
- G1 (hisse senedi) HTC
- HTC Vision/G2 (hisse senedi)
İnanılmaz hariç tüm bu cihazlar sadece çıkarılabilir depolama döndü. Muhtemelen yapmam gereken bazı ek denetimler vardır, ama bu şimdiye kadar bulduğum herhangi bir çözüm daha en azından biraz daha iyi.
Nasıl bir dize dönüştürmek için yığın ...
Nasıl, asenkron yerine senkron AJAX is...
Nasıl haftanın başlangıç için DateTime...
Nasıl Android Geliştirme için MS Visua...
Nasıl görüntüler için yakınlaştırma iş...