问题描述
我想授予 android 应用程序/服务对本机串行端口 (UART RS-232) 的访问权限.当我说本机时,我指的是真正的 UART,而不是 USB 转串行加密狗.我可以从终端看到它们(连接到 4 个本机串行端口之一).它表明内核已经处理了低级的东西.
I want to give android application/service access to native serial port (UART RS-232). When I say native, I mean a real UART not a USB to serial dongle. I can see them from the terminal (connected to one of the 4 native serial port). It shows that kernel already takes care of the low level stuff.
# ls -l /dev
crw-rw-rw- system system 204, 67 2010-01-01 07:00 s3c2410_serial3
crw-rw-rw- system system 204, 66 2010-01-01 07:00 s3c2410_serial2
crw-rw-rw- system radio 204, 65 2010-01-01 07:00 s3c2410_serial1
crw-rw-rw- system system 204, 64 2010-01-01 07:00 s3c2410_serial0
我用姜饼.我已将 Android 移植到具有 S5PV210 处理器的平台上.我完全控制内核和权限.我已经修改了很多东西(蜂窝、触摸屏、LCD 面板尺寸等),包括 init.rc 文件.
I use Gingerbread. I have ported Android to my platform which has a S5PV210 processor on. I have full control of the kernel and the permissions. I already modified a lot of things (cellular, touchscreen, LCD panel size etc) including the init.rc file.
如何通过 Android APK 与这些设备通信?如您所见,s3c2410_serial1"来自用户radio",因为我获取 Gingerbread 源代码的原始系统在该串行端口上有一个 GPRS 模块.在 init.rc 中很容易更改.但这只是证明我们至少可以访问 Android 系统上的本机串行端口.
How can I talk to those devices from an Android APK? As you can see "s3c2410_serial1" is from user "radio" because the original system I took the Gingerbread source code from had a GPRS module on that serial port. It's easy to change in the init.rc. But that just prove we can access a native serial port on an Android system, at least.
应用程序或服务不需要控制 APK 的波特率或任何花哨的东西.我只想发送和接收字符.内核可以设置默认波特率,我对此很满意.我什至不需要控制 RTS/CTS.
The applications or services will not need to control over the baud rate or any fancy stuff to the APK. I just want to send and receive characters. The kernel can set a default baudrate and I'm happy with that. I don't even need control over RTS/CTS.
感谢任何提示.
推荐答案
我找到了办法.它似乎适用于任何类型的设备,因为它只是将设备作为文件访问.请参阅链接 android-serialport-api.它适用于任何类型的/dev/... 在我的情况下,我必须安装 NDK 并通过所有的 hooplas 才能让它工作.在 C 语言中有一段代码用于设置波特率.其实open和close都是用C实现的,剩下的都是标准的android java.
I found a way. It seems to work for any kind of device because it just access the devices as a file. See the link android-serialport-api. It works for any kind of /dev/... In mhy case I had to install the NDK and go through all the hooplas to get it to work. There is a piece of code done in C where it sets the baud rate. In fact, the open and close are implemented in C the rest is all standard android java.
这篇关于在Android上访问本机串口的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!