我正在开发一个 Android 应用程序,我想与通过 USB 连接的设备进行通信。该设备一直在传输数据。这些数据通过 android linux shell 上的程序可见。
我的目标是在我的应用程序中查看这些数据,然后通过服务将它们传递给其他应用程序。
所以我的问题是:我可以“打开”从我的 Android 应用程序到 USB 端口的连接,以便我继续接收我的应用程序中由 USB 设备发送的数据吗?如果是,代码会是什么样子?
*编辑
感谢您的回答,该应用程序本身不再在命令行上运行。所以它不再是可执行文件,而是一个共享库被我的 android 应用程序加载。它以前做过,但我希望能够在我的应用程序中使用 NDK 方法启动连接,以便能够在我的应用程序本身中查看数据。因此,我尝试查看连接是否已打开。
我在我的代码中添加了一些功能,所以我可以查看 USB 连接是否打开并且我拥有该 USB 设备的权限。
UsbManager.hasPermission(device)
返回 true,因为我正在使用一个 item 过滤器。
UsbManager.openDevice(device)
返回一个 UsbDeviceConnection,所以我似乎有权使用该设备。
到目前为止,我无法通过 USB 设备接收发起总线连接,当然也可以获取该设备的数据输入。
由于我的本机代码已经有一个 while(true) 方法,它仅在实际数据通过我的 USB 设备发送时使用回调将数据发送到我的应用程序,我想在我的 c 代码中完成工作。
我的应用程序应该做的唯一工作是打开一次总线连接,然后准备好从 c 代码回调。
那可能吗?