我目前正在做一个项目,我需要将心率传感器连接到Android设备上,并在基于Kivy的应用程序上可视化数据。在
试图使用serial.tools.list_ports.comports,但在设备上没有返回任何内容。他们已经声明该功能只支持有限数量的操作系统,所以我认为它在Android上不起作用。在
我已将所有需要的要求包括在buildozer.spec以及白名单中的termios(因此我在包含模块方面没有任何问题):# requirements of the app
requirements = kivy==master,python3crystax,hostpython3crystax,sdl2_image,sdl2_mixer,sdl2_ttf,sdl2_six,pyjnius,pyserial,serial
我试着编辑AndroidManifest.xml文件的意图过滤器部分,以使我的应用程序有USB权限,但它也不起作用。在
我检查了一个应用程序,发现该设备没有特定的名称,而是通过插入和拔出USB来更改的名称,例如:/dev/bus/usb/001/002 --> /dev/bus/usb/001/003 --> ...
还试图使用其他页面中声明的通用名称/dev/ttyUSB0/,但没有成功。在
返回的错误是对端口的权限被拒绝。在
我怎么能列出连接到设备的USB设备,最终打开一个端口与它通信?在
更新1:
我最近尝试使用一些pyjnius函数。下面是我写的代码:
^{pr2}$
我在main.py中调用self.device。它不返回任何值。在
更新2:
我试图转换我从self.usbMgr.getDeviceList()得到的HashMap,但是没有成功。我只得到
>
更新3:
我找到了一种方法来返回插入式USB设备的名称。在values = self.usb_mgr.getDeviceList().values() #returns Collection
valuesArray = values.toArray() #returns list in python
deviceName = valuesArray[0].getDeviceName() #[0] for testing
self.device = str(deviceName)
这起作用了。我目前没有USB传感器,我不确定pySerial是否能在Android上正常工作,但这将在周一进行测试。在