如何解决套接字sendto在Android上不起作用kivy,buildozer
我正在用kivymd编写脚本来切换连接到微控制器的LED。该脚本应该将套接字UDP消息发送到MCU服务器,其中包括切换LED的命令。该脚本在Windows上运行良好,并且buildozer的构建成功(尽管未在此脚本中显示,但是我尝试了另一个版本以将Hello world打印到MDLabel并成功运行),但是每当我在Android上按btn_led时,应用程序都会关闭下。有什么想法为什么会发生以及如何解决?
from kivymd.app import MDApp
from kivymd.uix.button import MDFlatButton
from kivy.uix.screenmanager import Screen
import socket
class TableApp(MDApp):
def build(self):
# Add Widgets
screen = Screen()
btn_led = MDFlatButton(text="Toggle LED",on_release=self.toggle_led,pos_hint={"center_x": 0.5,"center_y": 0.5})
screen.add_widget(btn_led)
return screen
def toggle_led(self,event):
s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.sendto(b"LED",("10.0.0.167",1111))
s.close()
TableApp().run()
解决方法
我刚刚了解到buildozer.spec文件包含可以配置为包含INTERNET
的权限。我取消了对默认情况下包含INTERNET的权限行的注释,所有内容都像一个魅力!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。