【问题标题】:Passing gpio interrupt to android application将gpio中断传递给android应用程序
【发布时间】:2014-11-24 22:43:48
【问题描述】:

我有一个 android 4.4.2 设备,它有一个为附加模块暴露的 UART 连接器。 GPIO 也是此连接器的一部分,附加模块可以选择使用它向我的 android 设备发送信号。此中断将由 android 应用程序处理。

以下是我可以实现这一目标的几种方法,但我觉得这不是正确的方法,

  1. 使用 input_report_key() 将 GPIO 中断作为输入键传送到 Android 应用程序

  2. 为 /sys/class/gpio/gpiox 实现 poll() 函数。

但以上方法似乎都不适合我, 有人可以帮我知道是否有任何方法可以将 gpio 中断传递给 android 应用程序?

【问题讨论】:

  • 使用 poll() 的第二种方法,我可以注意到很少有中断被错过.. 有什么办法可以克服这个问题?
  • 如果我有更多的代表,我会为这个问题悬赏!

标签: android user-interface kernel interrupt gpio


【解决方案1】:

感谢您的所有投入,

实际上,我一直在寻找将kernel level GPIO interrupt 传达给android layer(或应用程序)的最佳方式。

我以以下方式实现,

  • 在内核中导出了 GPIO。
  • 在 HAL 中轮询。
  • HAL 调用框架的方法(已在 init 中注册)
  • 框架的回调方法将意图广播到最终应用程序。

没有使用second method (input_report_key()),因为它使用了input event framework,我觉得这不是正确的做法。

【讨论】:

  • 我假设您正在使用 poll() 函数在 HAL 中进行中断轮询。但是当手机进入挂起模式时,您的 poll() 是否会在中断时退出?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-11
  • 1970-01-01
  • 2014-04-21
  • 2012-12-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多