SORU
1 Temmuz 2012, Pazar


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
30 Kasım 2012, Cuma


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Emotional Trancer

    Emotional Tr

    4 Mart 2010
  • Howard Pinsky

    Howard Pinsk

    6 AĞUSTOS 2006
  • njhaley

    njhaley

    24 NİSAN 2006