11

我想在 Linux Android 上开发一个通过 USB 控制串行设备的应用程序。
支持 USB 主机的 Android 操作系统是 3.1。

Q1:请告诉我如何获取串口设备挂载的端口。

当我在 Dalvik 调试监视器上获得“转储设备状态”时,我得到了可能的 USB 设备信息。
而且,我使用 adb 在 android 设备上检查了 /dev/tty*。
我不知道串行设备是哪一个(/dev/tty??)。

adb shell
$ ls /dev/tty*
/dev/tty
/dev/ttyFIQ0
/dev/ttyHS0
/dev/ttyHS2
/dev/ttyHS3
/dev/ttyHS4
/dev/ttyS0
/dev/ttyS1
/dev/ttyS2
/dev/ttyS3

Q2:请告诉我如何在没有root权限的情况下在Android上控制串口设备。

我有一个可以控制 linux 上的串行设备的应用程序(exe)。
我试图在 android 上做,但我不能做许可被拒绝。

而且,我尝试重定向到串行端口(也许)
$ ls > /dev/ttyS0
但我做不到。
无法创建 /dev/ttyS0:权限被拒绝。

请让我知道如何控制和访问串行设备。

4

3 回答 3

4

在 XDA 论坛主题中有一个很好的评论:

如何使用 AT 命令与调制解调器对话

该线程向您展示了如何使用远程终端(USB 连接到您的 PC)发送 AT 命令(ATC),但它尚未解决如何使用本地(电话)终端与电话调制解调器交谈的问题。

顺便提一句。您需要一个终端应用程序/程序来与调制解调器进行任何对话(请记住,它是一种双向通信)。这就是为什么您需要一个有根设备的原因,因为根工具包通常带有Busybox(包括一个microcom终端程序)。否则,您必须编写自己的程序。

于 2012-01-31T16:09:35.413 回答
4

在下一步中,您可以通过以下命令测试 tty* 端口: $ cat /dev/tty* /for 从 tty 接收字符 和 $ echo 'text string' > /dev/tty* /for 将字符发送到 tty

祝你好运!

于 2014-06-13T16:44:11.583 回答
0

在有根设备上试试??在研究同一件事时,我读到只有少数 3.1 / 2.3.4 设备允许非 root 访问 USB 端口。

这是我在 HTC Desire 无根版本 2.2 上得到的:

$ ls /dev/tty*
ls /dev/tty*
/dev/tty
/dev/ttyHS0
/dev/ttyHSUSB0
/dev/ttyHSUSB1
/dev/ttyHSUSB2
/dev/ttyMSM0

我的华硕变压器,无根,3.2:

$ ls /dev/tty*
ls /dev/tty*
/dev/tty
/dev/ttyHS1
/dev/ttyHS2
/dev/ttyS0
/dev/ttyS1
/dev/ttyS2
/dev/ttyS3

当与安装的键盘底座对接时,我得到完全相同的列表(它作为 2 个 USB 端口)。

希望它有所帮助,请让我知道我很想能够做到这一点。

于 2011-08-03T11:09:54.877 回答