Создание apk для Android с использованием Beeware+toga для загрузки по FTP
Мне удалось успешно собрать apk из Beeware и Toga и запустить его на мобильном устройстве Android, основная цель приложения - отправить данные на FTP. Когда я тестировал в Windows, я смог загрузить данные на FTP, пока я конвертировал в apk приложение работает нормально, данные не загружаются на FTP. Не знаю как отлаживать apk.
"""
Upload the AMGL to FTP
"""
import toga
from toga.style.pack import COLUMN, LEFT, RIGHT, ROW, Pack
import ftplib
class FTPUload(toga.App):
def startup(self):
"""
Construct and show the Toga application.
Usually, you would add your application to a main content box.
We then create a main window (with a name matching the app), and
show the main window.
"""
Name_b = toga.Box()
AMGL_b = toga.Box()
SDate_b = toga.Box()
EDate_b = toga.Box()
Remark_b = toga.Box()
box = toga.Box()
Name_i = toga.TextInput()
AMGL_i = toga.TextInput()
SDate_i = toga.TextInput()
EDate_i = toga.TextInput()
Remark_i = toga.TextInput()
Name_l = toga.Label('Name', style=Pack(text_align=LEFT))
AMGL_l = toga.Label('AMGL', style=Pack(text_align=LEFT))
SDate_l = toga.Label('SDate', style=Pack(text_align=LEFT))
EDate_l = toga.Label('EDate', style=Pack(text_align=LEFT))
Remark_l = toga.Label('Remark', style=Pack(text_align=LEFT))
def push(widget):
with open("text.txt", "w") as fil:
fil.write(str(Name_i.value)+','+str(AMGL_i.value)+','+str(SDate_i.value)+','+str(EDate_i.value)+','+str(Remark_i.value))
ftp = ftplib.FTP("xxx.xxx.xxx.xxx")
ftp.login("xxxxxxxxx","xxxxxxxxx")
ftp.cwd("/")
ftp.cwd("FS")
with open("text.txt", "rb") as fil:
ftp.storbinary('STOR %s' %'test.csv', fil)
ftp.quit()
## try:
## c_input.value = (float(f_input.value) - 32.0) * 5.0 / 9.0
## except ValueError:
## c_input.value = '???'
button = toga.Button('push', on_press=push)
Name_b.add(Name_l)
Name_b.add(Name_i)
AMGL_b.add(AMGL_l)
AMGL_b.add(AMGL_i)
SDate_b.add(SDate_l)
SDate_b.add(SDate_i)
EDate_b.add(EDate_l)
EDate_b.add(EDate_i)
Remark_b.add(Remark_l)
Remark_b.add(Remark_i)
box.add(Name_b)
box.add(AMGL_b)
box.add(SDate_b)
box.add(EDate_b)
box.add(Remark_b)
box.add(button)
box.style.update(direction=COLUMN, padding_top=10)
Name_b.style.update(direction=ROW, padding=5)
AMGL_b.style.update(direction=ROW, padding=5)
SDate_b.style.update(direction=ROW, padding=5)
EDate_b.style.update(direction=ROW, padding=5)
Remark_b.style.update(direction=ROW, padding=5)
Name_i.style.update(flex=1, padding_left=10)
AMGL_i.style.update(flex=1, padding_left=10)
SDate_i.style.update(flex=1, padding_left=10)
EDate_i.style.update(flex=1, padding_left=10)
Remark_i.style.update(flex=1, padding_left=10)
Name_l.style.update(width=100, padding_left=10)
AMGL_l.style.update(width=100, padding_left=10)
SDate_l.style.update(width=100, padding_left=10)
EDate_l.style.update(width=100, padding_left=10)
Remark_l.style.update(width=100, padding_left=10)
#join_label.style.update(width=150, padding_right=10)
button.style.update(padding=15, flex=1)
self.main_window = toga.MainWindow(title=self.formal_name)
self.main_window.content = box
self.main_window.show()
def main():
return FTPUload()