【问题标题】:Implementation of Android on Raspberry-Pi在 Raspberry-Pi 上实现 Android
【发布时间】:2013-05-15 17:51:13
【问题描述】:

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

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

【问题讨论】:

  • 嗨,达山!欢迎来到堆栈溢出。您的问题非常开放,因此不适合 SO 问题的格式。如果您对实施有具体问题,请随时提出。你的问题可能会被关闭,因为它感觉很像“我有一个家庭作业项目要做,有人可以提供我的代码吗?”
  • 其实这个问题应该是既合适又可以回答的。
  • 感谢 CanSpice 的建议,我们已经使用 Linux OS 和 Python 代码在 Raspberry pi 上成功实现了相同的想法。所以我有逻辑和代码,我们只是在尝试其他可能性。需要一些指导因为我对 android 编程很陌生。
  • @Darshan 你最终是如何解决问题的 >
  • 正如 Chris Stratton 所建议的,我必须调整内核,以便内核提供创建 /dev/ttyUSB0 的权限(/dev 文件夹中此节点的存在表明您的树莓-当加密狗连接时,pi 能够检测到连接到它的 USB)。

标签: android raspberry-pi


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 感谢 Chris 的帮助,我认为 Gingerbread 支持 USB 主机 API,因为我可以将鼠标和键盘连接到我的 Raspberry-PI 并且操作系统会响应鼠标按钮和键盘的点击。我会尝试实施您建议的第二种方法。
  • 在没有自带触摸屏的设备上,我不认为支持 USB 鼠标和键盘意味着 Android USB 主机 API 可供应用使用。
  • developer.android.com/guide/topics/connectivity/usb/… ...这个链接告诉我Android 2.3.4可以用于USB通信并且支持USB附件虽然它不直接支持USB主机。
  • android.serverbox.ch/?p=262..... 对从事与我类似项目的任何人都有帮助
  • 附件模式将无济于事,除非您的安装中有其他东西可以充当 USB 主机
猜你喜欢
  • 1970-01-01
  • 2012-01-21
  • 2015-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-12
  • 1970-01-01
相关资源
最近更新 更多