如何在Android上,在Qt中使用USB OTG串口?

问题描述 投票:0回答:1

我打算将一个Qt桌面应用程序移植到Android上。它使用QSerialPort与外部设备(它有一个内置的CP210x)进行通信。

这个应用虽然是纯用Qt和C++写的,但在Android上运行得很好,但它看不到设备。该 CP210x官方驱动下载页面 建议从源头开始在Android上编译内核,这对于普通用户来说是不可行的。我在网上找到的其他建议都推荐越狱制动手机,这也不是我们可以期待终端用户去做的事情。

在Qt论坛上,这个话题的问题寥寥无几,大多数人都说QSerialPort对Android的支持相当有限。然而,这些话题往往至少有6-7年的历史。

一个Android开发者 forumwikitutorial? 推荐使用 "Android Things",不管它是什么。我找不到任何符合这个描述的应用。

我知道在非越狱的Android上使用serial-usb在物理上是可能的,因为我试过一个串行控制台应用程序,它可以工作,我可以成功地与我的设备交换数据。

这是否意味着,唯一的办法就是用Java开发自己的封装器,并使用JNIEXPORT?那就会打破我之前使用的简易多平台编译(只是从Qt Creator中选择不同的工具包),有没有更简单的方法来完成这个任务?是不是USB OTG的使用率太低,以至于没有人想到在这方面实现什么?

android c++ qt usbserial
1个回答
1
投票

QSerialPort只有一个非官方的部分Android支持(参见 https:/wiki.qt.ioQt_Serial_Port。).

(......风险自担,仅适用于已root的设备,其中可以设置devttyXYZ节点的权限)

你可以用JNI获得一个有权限的FileDescriptor,然后用C++中的libusb库与设备通信。但是是的,这会打破多平台编译的简易性。

© www.soinside.com 2019 - 2024. All rights reserved.