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怎么联网

怎么解决android studio 中selector无法用的问题

无法启动 Android Studio

无法在 Android Studio 中使用 jsoup

Android Studio 无法使用 chaquopy python 打开 COM 端口

无法压缩 apk android android studio 2.2