Android Studio 无法使用 chaquopy python 打开 COM 端口
Posted
技术标签:
【中文标题】Android Studio 无法使用 chaquopy python 打开 COM 端口【英文标题】:Android Studio could not open COM port with chaquopy python 【发布时间】:2021-06-22 13:04:32 【问题描述】:我正在 android studio 中构建一个 IoT 应用程序,并且我正在使用 Chaquopy - 适用于 android 的 Python SDK,因此当我按下 android 中的按钮时,我的 python 脚本将运行应用程序,但不知何故我收到无法打开这样的端口错误。
Process: com.example.firebaseheartratemonitor, PID: 16761
com.chaquo.python.PyException: SerialException: [Errno 2] could not open port COM4: [Errno 2] No such file or directory: 'COM4'
at <python>.serial.serialposix.open(serialposix.py:325)
at <python>.serial.serialutil.__init__(serialutil.py:244)
我在 Java 中的 android 代码:
if (!Python.isStarted())
Python.start(new AndroidPlatform(this));
Python py = Python.getInstance();
PyObject module = py.getModule("get");
sendDataOverDisplay.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
PyObject pyObject = module.callAttr("main", heartrate);
sendData.setText(pyObject.toString());
);
我的python代码:
import serial
import time
def main(data):
with serial.Serial('COM4', 9600) as ser:
ser.open()
requiredData = data[0]
ser.write((requiredData).encode())
time.sleep(.01)
ser.close()
return requiredData
已经一个星期了,我不知道如何解决这个错误,任何线索都将不胜感激。
【问题讨论】:
【参考方案1】:“COM4”看起来像 Windows 串行端口名称,因此在 Android 上不起作用。尝试使用 serial.tools.list_ports
之类的名称来找出正确的名称。
此外,即使您确实使用了正确的名称,您的应用也可能仍无权直接访问该端口。如果您在有根设备上运行,您可以通过更改端口设备文件的权限来让 pyserial 工作。在非 root 设备上,我知道的唯一选择是使用 Java UsbManager
,也许借助像 UsbSerial 这样的库。您仍然可以在 Chaquopy Python API 的帮助下从 Python 调用这些 API。
【讨论】:
以上是关于Android Studio 无法使用 chaquopy python 打开 COM 端口的主要内容,如果未能解决你的问题,请参考以下文章
怎么解决android studio 中selector无法用的问题