其他分享
首页 > 其他分享> > Android KitKat IR API发送Pronto十六进制命令

Android KitKat IR API发送Pronto十六进制命令

作者:互联网

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

Pronto IR Hex命令:
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 00BB 0006 0115 0006 0900

模式数组:
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,int [])

The alternating on/off pattern in microseconds to transmit.

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

标签:android-4-4-kitkat,infrared,android
来源: https://codeday.me/bug/20191029/1960752.html