Estou procurando um caminho para o meu HTC Hero (Android 2.1) para que eu possa compartilhar o conteúdo do meu cartão SD e memória do telefone pela rede WiFi como um compartilhamento comum de arquivos do Windows. Gostaria de um que não exija que eu torça meu telefone e estou disposto a pagar pelo aplicativo certo para que ele não precise ser gratuito.
Estou pensando em usar o servidor SMB e tudo o que encontrei até agora são:
- SambaAndroid que requer acesso root.
- androidsmb, que é uma "implementação Java do arquivo de rede SMB / CIFS e servidor de compartilhamento de impressora para dispositivos Android" hospedado no Google Code que não possui documentação e não liberou nenhum arquivo.
É tecnicamente possível desenvolver um servidor SMB no Android que possa ser instalado sem acesso root?
wi-fi
root-access
cifs
Dia
fonte
fonte
Wifi Explorer
( appbrain.com/app/wifi-file-explorer/… ) algumas vezes e funciona muito bem, sem necessidade de raiz. Porém, não é SMB (e provavelmente também não é FTP).Respostas:
Como sua pergunta original ainda não foi respondida e eu me perguntava o mesmo, aqui está a resposta.
Resposta curta: Não, sem raiz, não é possível executar um servidor SMB usando as portas padrão, para que seja encontrado pelos PCs com Windows.
Resposta longa: O SMB é executado nas portas 137-139 (UDP e TCP) usando NetBIOS ou em sistemas mais recentes (a partir do Windows Vista) diretamente na porta TCP 445, onde neste último caso os nomes de computadores são resolvidos pelo LLMNR (Multicast local-link) Protocolo de resolução de nomes) que é executado na porta UDP 5355. Por que isso é importante? Os aplicativos que não estão executando como raiz não podem se vincular a portas não privilegiadas (<1024). É possível usar portas alternativas para SMB, mas o Windows é conectado apenas para ouvir as portas padrão. Então, eu acho que se você usa Linux ou um cliente SMB separado para Windows, o que permite conectar-se a um servidor com um número de porta personalizado, provavelmente é possível. Mas não é realmente uma maneira direta.
fonte
\\your.ip:port
...Embora não seja possível executar um servidor SMB sem raiz ou usando o encaminhamento de porta , é possível executar um servidor WebDAV sem raiz para um efeito semelhante.
Configurando um servidor Android WebDAV
No meu Nexus 7, instalei o WebDAV Server , o abri, cliquei no botão Iniciar e pude ver imediatamente minha
/storage/sdcard
pasta no meu navegador na URL exibida pelo aplicativo, ou seja,http://192.168.x.y:8080
Observe que, com o WebDAV, você também tem a opção de selecionar Raiz (/) ou DCIM , além de SdCard como raiz do WebDAV .
Usando o servidor WebDAV através do Windows Explorer
Mapeei
http://192.168.x.y:8080
como uma unidade de rede no Windows Explorer e consegui acessar o conteúdo da minha unidade de armazenamento, como se estivesse conectado via MTP, mas através de uma letra de unidade.Infelizmente, esta solução é incrivelmente lenta.
Toda mudança de diretório leva entre 6 e 20 segundos, assim como o acesso à maioria dos arquivos. Porém, quando um arquivo é acessado, ele é transferido a uma velocidade razoável (a cópia de um único arquivo de 42 MB no Windows Explorer levou cerca de 60 segundos, ou seja, 700 KB / s).
Portanto, o WebDAV via Windows Explorer é adequado para baixar alguns arquivos grandes cuja localização você conhece, mas navegar ou sincronizar um dispositivo inteiro dessa maneira não é rápido. Sincronizei 1,75 GB de dados em cerca de 6000 arquivos e 400 diretórios e levou 10 horas, ou seja, cerca de 50 KB / s ou 10 arquivos / diretórios por minuto, em média.
Usando o servidor WebDAV através da linha de comando do Windows
Mesmo na linha de comando, cada listagem de diretório leva de 5 a 6 segundos, assim como qualquer acesso a arquivos. A cópia do mesmo arquivo de 42 MB da linha de comando levou cerca de 20 segundos, aproximadamente 2,1 MB / s.
Usando o servidor WebDAV através de um navegador da web
A opção mais rápida para o WebDAV é usar o seu navegador da web, diretamente através do URL fornecido. A mudança de diretório raramente leva mais de um segundo e o download do mesmo arquivo de 42 MB do navegador leva cerca de 12 segundos, aproximadamente 3,6 MB / s.
A desvantagem de usar o navegador da web é que ele mostra apenas a data (sem tamanho ou tipo) e não faz distinção entre arquivos e diretórios; portanto, se um arquivo não possui uma extensão (ou um diretório), pode não ser óbvio se clicar em um link o levará para outra página da web (para um diretório) ou iniciará um download (para um arquivo).
Ressalvas
Por padrão, o Windows limita o tamanho dos downloads do WebDAV a 50000000 bytes (47,6MB), embora isso possa ser alterado através de uma invasão de registro (
FileSizeLimitInBytes
inHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters
) se você souber o que está fazendo.O acesso ao WebDAV não é seguro . Mesmo se você definir uma senha no compartilhamento WebDAV, a conexão ainda
http
não éhttps
, portanto não é criptografada. Use o WebDAV apenas em uma rede wifi segura e, certamente, não ative o servidor WebDAV enquanto estiver em um cibercafé ou outro wifi sem segurança.fonte
O problema não é o servidor samba, mas o fato de o Windows poder acessar um compartilhamento samba apenas na porta 445 e, em um android sem raiz, um aplicativo normal não pode escutar na porta 445.
Mas você pode superar isso com alguns mapeamentos de portas TCP:
Descrevi todas as etapas em detalhes aqui no meu blog http://techforpassion.blogspot.it/2013/12/android-how-to-share-folder-over-wifi.html
Eu tentei um servidor samba diferente, e o único aplicativo gratuito que funciona nessa configuração é chamado Samba Server
fonte
\\androids.ip:7777
na barra de endereços do explorer?Como alternativa, você pode executar um servidor ftp no telefone para obter acesso ao conteúdo do cartão SD. Confira o SwiFTP .
fonte
No momento, terminei um aplicativo ( para dispositivos não raiz ) para compartilhar arquivos na rede local. Minhas lições aprendidas:
fonte
Posso estar entendendo mal, mas parece que você precisa de um cliente SMB, não de um servidor. Além disso, você não precisa de acesso root. Para usar o SMB para transferir arquivos para o seu computador, você pode usar o Gerenciador de Arquivos ASTRO com o complemento SMB , ou existe o File Expert, que também é gratuito.
Você também pode usar o WebDAV em vez do SMB com um aplicativo como o WebSharing .
No passado, usei um aplicativo que, com o software cliente no meu computador, me permitia transferir arquivos pelo explorador de arquivos de qualquer lugar pela web. Não era um aplicativo VNC completo. Eu adquiri um telefone novo e agora não consigo encontrar o aplicativo.
fonte