Como posso determinar o caminho do cartão SD?

11

Estou em um Thinkpad com Android 4.0.2 tentando abrir um arquivo HTML em um cartão SD, usando o navegador padrão. Respostas aqui têm indicado que você deve acessar file:///mnt/sdcard, file:///mnt/sdcard-ext, file:///sdcard, e muitas outras combinações, mas nenhum deles funciona para mim: eu fico "página não disponível".

Aparentemente, máquinas diferentes montam o cartão SD em um caminho diferente. Como posso descobrir em que caminho meu cartão SD está montado? Ou, se esse não é o problema, qual é?

Jack M
fonte
Por curiosidade, e parcialmente por causa de algumas coisas que você mencionou em outros comentários, o que há nos arquivos HTML mencionados? Você usou o termo "aplicativos baseados em html" em um comentário, e eu estou imaginando o que você quis dizer com isso.
dotVezz 21/10

Respostas:

6

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


fonte
11
Você também pode fazer isso echo $EXTERNAL_STORAGEem um emulador de terminal. Mas isso me dá o caminho para o "cartão SD" interna ( /storage/sdcard0) no meu Galaxy S3 em vez de para o cartão SD física (para o qual o caminho é /storage/extSdCard)
compro01
que tal echo $SECONDARY_STORAGE?
echo $SECONDARY_STORAGEme dá /storage/extSdCard:/storage/UsbDriveA:/storage/UsbDriveB:/storage/UsbDriveC:/storage/UsbDriveD:/storage/UsbDriveE:/storage/UsbDriveF, então temos o cartão SD externo, além de várias outras coisas. Não tenho certeza se esses pontos de montagem existiam antes de eu usar uma unidade USB nessa coisa ou não.
precisa saber é o seguinte
echo ${SECONDARY_STORAGE%%:*}
@AlexP. isso funcionará em todos os dispositivos Android? É possível obter apenas os atuais que estão montados?
desenvolvedor android
1

Na maioria dos dispositivos, o SDCard é montado ou pelo menos vinculado a um /mnt/sdcardou a /sdcard. No entanto, quando o dispositivo possui um SDCard interno e externo, o último geralmente é encontrado "dentro" do anterior, por exemplo, em /sdcard/external_sd. Como alternativa, pode ser montado em /mnt/extSdCardou /storage/extSdCard. Observe as maiúsculas. Os nomes de arquivos do Android diferenciam maiúsculas de minúsculas.

Para um usuário, a maneira mais fácil de descobrir onde ele está (ou no seu caso, em vez de onde está localizado o seu '' arquivo ''), está usando um gerenciador de arquivos que permite não apenas navegar no seu SDCard, mas todo o sistema . Por exemplo, eu uso o ES File Explorer : se eu iniciar o aplicativo, ele automaticamente me colocará no meu sdcard (não o configurei assim, portanto, presumo que seja como sempre funciona). O caminho é exibido na parte superior da tela, para você vê-lo imediatamente. Se for muito longo para ser exibido lá (mesmo se você alternar para paisagem), ainda poderá "navegar para cima" até ver apenas /lá e observar todas as etapas - para terminar com o caminho completo.

Izzy
fonte
Interessante. Gostaria de saber o que o ES File Explorer faz para encontrar o ponto de montagem do sdcard.
dotVezz
De alguma forma sem um gerenciador de arquivos? A razão pela qual eu preciso fazer isso é porque não tenho internet sem fio e quero acessar aplicativos baseados em HTML do cartão SD. Sem internet sem fio, não consigo baixar um gerenciador de arquivos.
Jack M
Como nenhum desses URLs funciona, existem outros motivos pelos quais eu falharia ao acessar o cartão SD?
Jack M
@dotVezz eles usam uma chamada de sistema especial que retorna o diretório em que o armazenamento externo está montado. Jack: você pode usar um emulador de terminal (e comandos do shell como cde ls), mas acho que você também não tem nenhum instalado. Se você tiver um computador conectado via USB, também poderá usar adb shello mesmo procedimento. Além disso, atualmente estou sem ideias.
Izzy
Vendo a edição do Compro01: qual é a sua versão do Android? Em algum lugar no caminho para 4.2, mais alguns caminhos foram introduzidos, como /storage/sdcard0/.
Izzy
0

Apenas seis anos depois ...

Estou usando o sshelper do aplicativo Android ( https://play.google.com/store/apps/details?id=com.arachnoid.sshelper ) no dispositivo Android. Ele atua como um servidor SSH no smartphone e permite que eu faça o login via ssh.

Isso me permitiu procurar e encontrar meu cartão sd: - sendo enviado automaticamente para o SDCard em algum lugar é um sistema de arquivos linux - descobrindo que esse diretório aponta para / storage / emulated / 0 usando ls -lha - descobrindo que esse é o armazenamento interno por navegando no conteúdo - descobrindo que / storage / contém um diretório estranho como "5674-9865", que era a entrada para o meu cartão SD.

Horizonte de eventos
fonte