我正在尝试使用 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 位数字:
- 始终为 0。
- 频率。如果 n 是第二位数字,则频率计算如下: 1000000/(n*0,241246)
- 序列 1 中的突发对数
- 序列 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/