android - 如何访问Android开发包中的串口?

标签 android serial-port

我有一个Android开发板。我想通过应用程序通过可用的 com 端口串行发送数据。这可能吗?如果是这样,有人可以展示它是如何完成的吗?我搜索了一个星期但找不到任何合适的东西。提前致谢。

最佳答案

首先,您必须确保串行端口硬件功能正常,并且适当的 Linux 内核驱动程序已链接或作为模块加载 - 这与任何其他嵌入式 Linux 相同,您可能想在此时测试它使用命令行工具或测试程序。

然后您需要使其可供应用程序访问。一般来说,有三种方法可以做到这一点。

  • 您可以使串行端口的设备文件可供所有用户使用。这很简单,但由您决定任意应用程序完全访问串行端口是否会出现问题。

  • 您可以创建一个新的unix组和相应的Android权限,设置包管理器根据权限分配组中的成员身份,并将设备文件分配给该组。这就是写入 SD 卡之类的事情的处理方式。

  • 您可以限制对串行端口的访问,并创建一个特权守护进程,该守护进程将管理串行端口并代表 Android 应用程序执行通信,这些应用程序通过某些支持的 IPC 方式(例如 Binder、unix 套接字)与其联系等。很可能(至少如果使用 Binder)您会要求客户端应用程序持有您为串行端口访问创建的 Android 权限。这有点类似于发送短信之类的工作原理。

前两种方法可以让客户端应用程序(至少是 ndk 代码)使用 Linux 程序员熟悉的普通 posix 串行 API。第三种方法将串行端口呈现为 Android 风格的通信资源。

在编写任何代码之前,请先进行一些网络搜索。如果这个问题还没有多次得到解决,我会感到非常惊讶。

关于android - 如何访问Android开发包中的串口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10291843/

相关文章:

未调用 Android View onSaveInstanceState

安卓开发 : Service get killed

serial-port - 通过 "Null Modem"将 2 个 USB 端口连接在一起,就像过去使用 COM 端口一样?

linux - MATLAB 中的最大波特率是多少?

c++ - 有没有可以枚举端口的跨平台c++串口库?

android - 用户移动时在 Android 谷歌地图中绘制多段线

Android:检测 SD 卡何时作为磁盘驱动器安装到计算机

java - 如何通过java中的第二个参数对列表进行排序?

c - 使用 Linux 和 C 通过串口发送文件

c++ - 如何开发虚拟com端口c++