2013-04-03 12 views
6

Sto cercando una soluzione che utilizza l'API di Android per trasferire un file di testo da un dispositivo Android a un computer tramite cavo USB. Ho trovato USB host ma non posso utilizzarlo perché il computer non può funzionare come dispositivo per l'host Android.trasferimento di file da Android a computer tramite USB a livello di programmazione

Avete qualche suggerimento su come posso ottenere questo?

+1

Vuoi farlo a livello di programmazione? O hai semplicemente bisogno di collegare il dispositivo e trascinare i file? – FoxMulder900

+0

Voglio farlo a livello di codice, come ho menzionato nella domanda "che utilizza l'API di Android". – niculare

+1

Vedo, non sono sicuro che ciò sia possibile senza un'applicazione sul computer client, altrimenti sarebbe probabilmente un grande rischio per la sicurezza. – FoxMulder900

risposta

3

Ho risolto questo problema utilizzando adb status-window controlla continuamente per lo stato del dispositivo, e quando viene collegato un nuovo dispositivo, i file necessari vengono trasferiti al computer tramite adb pull comando.

Al fine di ottenere una soluzione portatile (cioè da eseguire indipendentemente dalla piattaforma Android), ho appena copiato i file "adb.exe" e "AdbWinApi.dll" nella mia applicazione e ho utilizzato l'adb da lì.

+0

Dopo aver copiato 'adb.exe' e il file' AdbWinApi.dll' cosa devo fare? esegue questo 'Runtime.getRuntime().exec ("adb -s pull /sdcard/juned.jpg/root/juned/android_usb /"); 'andrà bene, o devo fare qualcos'altro? – juned

0

È possibile scrivere un'app che utilizzerà http per contattare il PC e inviare (POST) dati a un endpoint noto.

Ricorda che l'app avrà accesso solo ai dati appartenenti all'app. Non sarà possibile accedere a un file arbitrario dal file system

+1

Il problema è che non posso fare affidamento sulla connessione di rete wireless. L'unica cosa su cui posso fare affidamento è il cavo USB. – niculare

+2

Lo stesso qui ... Devo connettermi a un DB su un PC Windows tramite USB. – Zonata

2

Aveva un problema simile a quello in cui un software installato nel PC doveva essere in grado di accedere al file all'interno del telefono Android tramite USB. Dopo una lunga ricerca ecco cosa ha funzionato per me (non so se questa sia la soluzione migliore ma ha funzionato). Windows dispone dell'API WPD (Windows Portable Device) che può essere utilizzata per enumerare i contenuti di un dispositivo tramite USB (e copiare i file tra client e dispositivo).

Ci sono poche implementazioni in Java http://code.google.com/p/jmtp/ (funziona bene, ma pretende molto funzione di supporto di copia da dispositivo a PC anche se c'è un po 'di supporto disponibile a fare questo con il codice sorgente) un altro è jusbpmp (disponibile nel repository di Google) (se qualcuno trova un'implementazione ben documentata e mantenuta condivisa)

ma poiché jmtp non ha funzionato per me (copia della compilazione della funzione sorgente (per sistema operativo a 64 bit non riuscita), ha scritto il programma C# da zero per copiare i file dal dispositivo al PC. qui è un bel tutorial http://cgeers.com/2011/08/13/wpd-transferring-content/