2012-06-22 20 views

risposta

4

Un modo per farlo sarebbe installare ADB (bridge di debug per android, parte dell'SDK) e avviarlo come un processo figlio da python. ADB può essere utilizzato, tra l'altro, per leggere o scrivere su un dispositivo Android.

+0

Ti dispiacerebbe dare un esempio su come farlo effettivamente? – Norfeldt

+3

Non proprio una soluzione in quanto richiede che il telefono abbia abilitato il debug USB, che potrebbe essere ok per la maggior parte di noi ma non per i normali consumatori. –

+1

@Norfeldt Fondamentalmente, devi installare i driver per il tuo sistema operativo e scaricare i file ADB. Hai questo lavoro? Quindi utilizzare il sottoprocesso.Popen per eseguire ADB, ad esempio: res, err = subprocess.Popen ([adb, 'push', pc_source, device_dest], stdout = subprocess.PIPE) .communicate() – foosion

6

Calibre, un popolare programma di gestione di ebook, ha il codice sorgente Python e C per trasferire i file su una connessione MTP. http://code.google.com/p/calibre-ebook/downloads/list

+1

URL per cercare il codice rilevante nel trunk: http://bazaar.launchpad.net/~kovid/calibre/trunk/files/head:/src/calibre/devices/mtp/ – rakslice

+0

Sembra un un po 'complicato – Norfeldt

4

Sto anche cercando la stessa cosa. Sembra che ci sia pymtp per multipiattaforma e wmdlib per Windows.

+1

Non c'è molta documentazione ed esempi da trovare su questi moduli. – Norfeldt

+0

Ho finito per usare e migliorare [pymtp] (https://pypi.python.org/pypi/PyMTP), funziona bene su GNU/Linux e Mac OS X. Puoi vedere un esempio qui: https: // github .com/guardianproject/keysync/blob/master/otrapps/util.py –

+1

Sono su Windows 7 e sto cercando una soluzione semplice. pymtp dipende da libmtp, che dipende ancora da LibUSB e libiconv che deve essere usato per compilarlo ... – Norfeldt

1

È necessario collegare semplicemente un cavo USB tra il telefono e il computer.

Potrebbe essere necessario abilitare i trasferimenti MTP nel menu delle impostazioni sul telefono. La posizione di selezione del menu è probabile che sia diversa su diverse versioni di Android e diversi modelli di telefono. Prova una ricerca su google per "galaxy nexus enable mtp". Assicurati di includere la versione di Android e telefono nella ricerca.

Assicurarsi che sia un cavo USB di buona qualità. Cavi di scarsa qualità non costituiscono una buona connessione e quindi non funzionano in modo affidabile.

Una finestra di dialogo per la gestione dei file viene visualizzata immediatamente sul mio desktop dopo aver collegato un cavo USB tra il mio telefono e il portatile con la memoria interna del telefono e la scheda SD. Questo mi consente di trasferire file in entrambe le direzioni direttamente al telefono Memoria SD (Linux Mint < -> LG Android versione 5.1)

Si noti che è anche possibile trasferire file utilizzando bluetooth.

Dopo aver stabilito una connessione, è necessario trovare il nome del dispositivo. Quindi sarebbe possibile aprire il dispositivo utilizzando i costrutti di file python standard, ad esempio popen(), ecc.

+1

Non si tratta di cavo, ma di come puoi scrivere un file sul telefono (via FTP) con codice Python. È ** non ** semplicemente come ' con open ('mtp: //SamsungA3/hello.txt', 'w') come f: f.write ('hello') '... – Basj

Problemi correlati