Jak mogę ustalić ścieżkę karty SD?

11

Korzystam z Thinkpad z Androidem 4.0.2 i próbuję otworzyć plik HTML na karcie SD, używając domyślnej przeglądarki. Odpowiedzi tutaj wykazały powinny uzyskać dostęp file:///mnt/sdcard, file:///mnt/sdcard-ext, file:///sdcard, i wiele innych kombinacji, ale żaden z nich nie działa dla mnie: ja po prostu „Strona internetowa jest niedostępna”.

Najwyraźniej różne maszyny montują kartę SD na innej ścieżce. Jak mogę dowiedzieć się, do której ścieżki podłączona jest moja karta SD? A jeśli to nie jest problem, co to jest?

Jack M.
źródło
Z ciekawości, a częściowo z powodu niektórych rzeczy wymienionych w innych komentarzach, co znajduje się w plikach HTML, o których wspominasz? Użyłeś terminu „aplikacje oparte na HTML” w komentarzu i zastanawiam się, co miałeś na myśli.
dotVezz

Odpowiedzi:

6

adb shell 'echo ${SECONDARY_STORAGE%%:*}'


źródło
1
Możesz to również zrobić echo $EXTERNAL_STORAGEw emulatorze terminali. Ale to daje mi ścieżkę do wewnętrznej „karty SD” ( /storage/sdcard0) na moim Galaxy S3, a nie do fizycznej karty SD (dla której jest ścieżka /storage/extSdCard)
Compro01,
co echo $SECONDARY_STORAGE?
echo $SECONDARY_STORAGEdaje mi /storage/extSdCard:/storage/UsbDriveA:/storage/UsbDriveB:/storage/UsbDriveC:/storage/UsbDriveD:/storage/UsbDriveE:/storage/UsbDriveF, więc otrzymujemy zewnętrzną kartę SD, a także kilka innych rzeczy. Nie jestem pewien, czy te punkty montowania istniały, zanim użyłem napędu USB do tego, czy nie.
Compro01,
echo ${SECONDARY_STORAGE%%:*}
@AlexP. czy to zadziała na wszystkich urządzeniach z Androidem? Czy można uzyskać tylko te, które są zamontowane?
programista Androida
1

W większości urządzeń karta SD jest zamontowana lub przynajmniej połączona z jednym /mnt/sdcardlub /sdcard. Jednak gdy urządzenie ma zarówno wewnętrzną, jak i zewnętrzną kartę SD, drugą kartę zwykle można znaleźć „wewnątrz” pierwszej karty, np /sdcard/external_sd. Alternatywnie może być zamontowany na /mnt/extSdCardlub /storage/extSdCard. Zwróć uwagę na stolice. W nazwach plików Androida rozróżniana jest wielkość liter.

Dla użytkownika najłatwiejszym sposobem, aby dowiedzieć się, gdzie to jest (lub w twoim przypadku, a raczej gdzie znajduje się Twój „plik”), jest użycie menedżera plików, który pozwala nie tylko przeglądać kartę SD, ale cały system . Używam na przykład ES File Explorer : jeśli uruchomię aplikację, automatycznie umieszcza mnie na mojej karcie SD (nie skonfigurowałem jej w taki sposób, więc zakładam, że zawsze działa). Ścieżka jest wyświetlana u góry wyświetlacza, więc zobaczysz ją natychmiast. Jeśli jest tam zbyt długo, aby się tam wyświetlić (nawet jeśli przełączysz się na poziomo), nadal możesz „nawigować w górę”, aż zobaczysz tylko /tam, i zanotuj wszystkie kroki - aby skończyć z pełną ścieżką.

Izzy
źródło
Ciekawy. Zastanawiam się, co robi Eksplorator plików ES, aby znaleźć punkt montowania sdcard.
dotVezz
W jakikolwiek sposób bez menedżera plików? Muszę to zrobić, ponieważ nie mam bezprzewodowego internetu i chcę uzyskać dostęp do aplikacji opartych na HTML z karty SD. Bez bezprzewodowego internetu nie mogę pobrać menedżera plików.
Jack M
Ponieważ żaden z tych adresów URL nie działa, czy istnieją inne powody, dla których nie mogłem uzyskać dostępu do karty SD?
Jack M
@dotVezz używają specjalnego wywołania systemowego, które zwraca katalog, do którego podłączona jest pamięć zewnętrzna. Jack: możesz użyć emulatora terminala (i poleceń powłoki, takich jak cdi ls), ale myślę, że nie masz żadnego zainstalowanego. Jeśli masz komputer podłączony przez USB, możesz również skorzystać adb shellz tej samej procedury. Poza tym obecnie brakuje mi pomysłów.
Izzy
Zobacz edycję Compro01: jaka jest twoja wersja Androida? Gdzieś na ścieżce do 4.2 wprowadzono więcej ścieżek /storage/sdcard0/.
Izzy
0

Zaledwie sześć lat później ...

Korzystam z aplikacji sshelper na Androida ( https://play.google.com/store/apps/details?id=com.arachnoid.sshelper ) na urządzeniu z Androidem . Działa jak serwer SSH na smartfonie i pozwala mi zalogować się przez ssh.

Pozwoliło mi to przekopać się i znaleźć moją kartę SD poprzez: - automatyczne przesyłanie na kartę SD gdzieś w systemie plików Linux - stwierdzenie, że ten katalog wskazuje na / storage / emulation / 0 przy użyciu ls -lha - ustalenie, że jest to pamięć wewnętrzna przez przeglądanie zawartości - dowiedzenie się, że / storage / zawiera dziwny katalog taki jak „5674-9865”, który był wpisem do mojej karty SD.

horyzont zdarzeń
źródło