Android KitKat IR API 发送 Pronto Hex 命令

标签 android android-4.4-kitkat infrared

我正在尝试使用 Android KitKat IR API 发送 Pronto IR 命令。 Android 抛出错误提示“非正片”。我尝试了下面的示例 Pronto Hex 命令,我想使用 Android IR Manager API 发送它。请帮助我解决问题。

Pronto IR 十六进制命令: 0000 006D 0000 000D 0006 0115 0006 0115 0006 00BB 0006 00BB 0006 00BB 0006 00BB 0006 00BB 0006 00BB 0006 00BB 0006 00BB 0006 000BB 01006 00BB 01506

模式数组: int[] 数据 = [0,109,0,13,6,277,6,277,6,277,6,277,6,187,6,277,6,187,6,187,6,187,6,277,6,187,6,187,6,2304]

irManager.transmit(38000, 数据);

最佳答案

我不是 100% 确定,但我猜 0 是不允许的。

通常,您不需要前四位数字。 Pronto 十六进制格式由 3 个部分组成:

  • 前言
  • 突发对序列 1
  • 突发对序列 2(可选)

序言包含 4 位数字:

  1. 始终为 0。
  2. 频率。如果 n 是第二位数字,则频率计算如下: 1000000/(n*0,241246)
  3. 序列 1 中的突发对数
  4. 序列 2 中的突发对数

因此必须删除序列中的前四位数字。

注意: Android API 并非 100% 正确。 https://developer.android.com/reference/android/hardware/ConsumerIrManager.html#transmit(int , 整数[])

The alternating on/off pattern in microseconds to transmit.

但在某些 Android 版本上,也取决于设备,您必须发送脉冲计数而不是以微秒为单位的时间。脉冲计数取决于频率。每秒脉冲数为 1000000/频率。在传输之前,您必须先将每个数字乘以该值。

关于Android KitKat IR API 发送 Pronto Hex 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23757160/

相关文章:

java - Android4.4 无法处理带有 "vnd.android-dir/mms-sms"的短信 Intent

sleep - 如何在不连续重置的情况下将esp8266从深度 sleep 中唤醒

android位图抖动

java - Android 声明一个变量

android - 为什么 MonkeyRunner.waitForConnection() 在我的环境中不起作用?

java - 为什么添加firebase后更新apk安装失败?

wifi - 如何在 Android KitKat 设备上启用 wifi 数据共享?

android - 停止短信移动到收件箱

android - 是否可以使用数码相机读取红外 Remote 的代码?