3

我正在做一个项目,我在 Android(姜饼)上运行 Raspberry Pi,我们在这个项目中尝试做的是我们从 Zigbee(pikkerton)设备获取读数(温度和光),Zigbee 设备将数据发送到插入树莓派的加密狗,我们应该通过加密狗读取树莓派上的值并在Android上显示

  1. 我们已经在 Raspberry pi 上成功安装了 Android 操作系统,将 raspberry pi 的输出连接到显示器并通过鼠标和键盘进行控制。
  2. 我们正在 NDK 中开发代码(一个从加密狗读取值并显示相同的应用程序)。
  3. 需要一些方法输入,我们可以通过 NDK 在 zigbee 加密狗和树莓派之间建立串行通信
4

1 回答 1

2

听起来您的加密狗提供了串行接口,因此您有两种广泛的选择:

1.可以让一个linux级别的驱动创建串口

您需要让任何创建串行设备(/dev/ttyUSB0 或 /dev/ttyACM0 等)的设备设置权限以允许所有用户访问。或者,您可以将权限设置为仅允许访问硬编码的 unix 级用户组 ID,并修改您的 Android 安装以添加新的 android 权限,从而使应用的用户 ID 成为该 unix 组中的成员,以便它可以访问港口。(有关如何处理 Internet 和外部存储权限的示例,请参阅以任何应用程序都可以使用的方式执行此操作,或如何处理无线电设备的受限示例)然后您可以使用普通的 linux 串行 API 从您的 NDK 访问端口代码或 Java 串行 API 从 Java 代码执行此操作。

2. 您可以禁用任何 linux 级别的驱动程序,并从 Android 应用程序代码与原始 USB 设备通信

首先检查您使用的 Android 版本是否具有 USB 主机 API;如果没有,您将需要先升级它。这种方法将需要较少的 Android 定制,但可能需要更多地了解与加密狗的实际 USB 通信。但是,您可能能够从 Android 应用程序中找到与类似设备对话的示例代码。

于 2013-05-15T20:46:53.813 回答