Когда я пишу код для меня - НИКАКОЙ . В этом случае Java doccing является пустой тратой моего времени.
, Когда я запишу код, который другие будут использовать - Да . Каждый метод, который кто-то еще может использовать (любой открытый метод) должен иметь документ Java, по крайней мере, формулирующий его очевидную цель. Для хорошего теста - выполняет javadoc утилиту создания на Вашем коде (я забываю точную командную строку теперь). Просмотрите веб-страницу, которую это генерирует. Если Вы были бы удовлетворены, пользуясь библиотекой с тем уровнем документации, Вы являетесь золотыми. В противном случае Запись больше javadocs в Вашем коде .
В итоге я использовал ftplib Python на телефоне и FileZilla, ftp-сервер, на компьютере. Преимущества заключаются в высокой степени простоты, хотя могут быть проблемы с безопасностью.
Если кому-то интересно, вот внутренности клиентского кода для отправки и получения файлов. Фактическая реализация имеет немного больше инфраструктуры.
from ftplib import FTP
import os
ftp = FTP()
ftp.connect(server, port)
ftp.login(user, pwd)
files = ftp.nlst() # get a list of files on the server
# decide which file we want
fn = 'test.py' # filename on server and for local storage
d = 'c:/temp/' # local directory to store file
path = os.path.join(d,fn)
r = ftp.retrbinary('RETR %s' % fn, open(path, 'wb').write)
print(r) # should be: 226 Transfer OK
f = open(path, 'rb') # send file at path
r = ftp.storbinary('STOR %s' % fn, f) # call it fn on server
print(r) # should be: 226 Transfer OK
f.close()
ftp.quit()
Я бы использовал paramiko . Это безопасно, быстро и очень просто. Как насчет этого?
Итак, мы начинаем с импорта модуля и указания файла журнала:
import paramiko
paramiko.util.log_to_file('/tmp/paramiko.log')
Мы открываем транспорт SSH:
host = "example.com"
port = 22
transport = paramiko.Transport((host, port))
Затем мы хотим пройти аутентификацию. Мы можем сделать это с помощью пароля:
password = "example101"
username = "warrior"
transport.connect(username = username, password = password)
Другой способ - использовать SSH-ключ:
import os
privatekeyfile = os.path.expanduser('~/.ssh/id_rsa')
mykey = paramiko.RSAKey.from_private_key_file(privatekeyfile)
username = 'warrior'
transport.connect(username = username, pkey = mykey)
Теперь мы можем запустить SFTP-клиент:
sftp = paramiko.SFTPClient.from_transport(transport)
Теперь давайте перетащим файл из удаленной в локальную систему:
filepath = '/home/zeth/lenna.jpg'
localpath = '/home/zeth/lenna.jpg'
sftp.get(filepath, localpath)
Теперь пойдем другим путем:
filepath = '/home/zeth/lenna.jpg'
localpath = '/home/zeth/lenna.jpg'
sftp.put(filepath, localpath)
Наконец, нам нужно закрыть SFTP-соединение и транспорт:
sftp.close()
transport.close()
Как это ?? Я должен отдать кредит этому примеру.
Есть пара примеров , но вы должны помнить, что IIRC, PyBluez будет работать только в Linux.
Я ранее сделал вещи, связанные с OBEX, в основном получая данные из мобильные телефоны, используя программу obexftp 2 , которая является частью Проект OpenOBEX 3 . Естественно, вы можете вызвать программу obexftp из Python и интерпретируйте ответы и коды выхода с помощью функций в модули os, popen2 и subprocess. Я считаю, что obexftp тоже поддерживает режим "push", но вы наверняка сможете найти что-нибудь еще связанных с OpenOBEX, если это не так.
Поскольку связь Bluetooth поддерживается с использованием сокетов в GNU / Дистрибутивы Linux и Python (при условии, что поддержка Bluetooth обнаружен и настроен), вы можете общаться с телефонами, используя простое сетевое программирование, но это, вероятно, потребует от вас самостоятельно реализовать протоколы OBEX - непростая задача для ряд причин, в том числе одну, которую я упоминаю ниже. Таким образом, это вероятно, проще использовать obexftp, по крайней мере, на начальном этапе.
У вас также есть lightblue , это библиотека bluetooth для разных операционных систем.
Также есть полный сценарий, PUTools: Python Utility Инструменты для PyS60 Python (в примерах есть скриншоты Windows), который имеет:
интерпретатор Python, который принимает ввод и показывает вывод на ПК, подключается через Bluetooth к телефону и запускается на телефоне. Вы также получаете простую функциональность оболочки для телефона (cd, ls, rm и т. Д.). Этот инструмент также позволяет синхронизировать файлы как с ПК на телефон (очень полезно при разработке приложений), так и с телефона на ПК (ваши изображения, файлы журнала программы, над которой вы работаете, и т. Д.).