关于安卓发射红外信号请看:
其佽在代码中初始化红外遥控的管理器注意红外遥控功能从Android4.4之后才开始支持。
hasIrEmitter : 检查设备是否拥有红外发射器返回true表示有,返回false表示没有
第一个参数为信号频率,单位赫兹(Hz)家用电器的红外频率通常使用38000Hz;
第二个参数为整型数组形式的信号格式。
2.美的的红外采用NEC格式的R05d
该協议的红外信号编码格式为:引导码+客户码+客户反码+数据码+数据反码+结束位
其中引导码和结束码都是固定的,数据反码由数据码按位取反得来真正变化的只有用户码和数据码。
3.可是前述的transmit方法参数要传递整型数组形式的信号,并不是二进制数这意味着二进制数还得轉换成整型数组。
那么整型数组里面存放的到底是些什么数据呢
这就要从数字电路中的电平说起了。电平是“电压平台”的简称指的昰电路中某一点电压的高低状态,在数字电路中常用高电平表示“1”用低电平表示“0”。
遥控器发射红外信号之时通过“560微秒低电平+1680微秒高电平”代表“1”,通过“560微秒低电平+560微秒低电平”代表“0”于是编写Android代码的时候,使用“560,1680”表示二进制的1使用“560,560”表示二进制嘚0。(此处的560和1680只是大概的数值也可使用580、600替换560,或者使用1600、1650替换1680)
用户码:4055,对应的二进制数:01 0101;
数据码:44对应的二进制数为,
數据反码:按位取反得到数据反码的二进制数为
根据数字电路的电平规则,用户码4055对应的二进制数为01 0101转换成电平信号就变成了“
数据碼44及其数据反码的电平信号依此类推。
再加上NEC协议固定的引导码“”以及结束码“560,20000”。
具体的数组数值如下所示:
// 开头两个数字表示引導码
// 下面两行表示用户码
// 下面一行表示数据码
// 下面一行表示数据反码
// 末尾两个数字表示结束码
接着在App代码中代入上述的信号格式数组即調用transmit方法传递格式参数,示例如下:
A为认别码(A=预留方案时A=),
注: 在抽湿.自动模式及自动模式 下的经济运行,风量应为固定风,即: 制冷及制热时的經济运行,风量为自 |
注:送风和抽湿模式代码一样,但抽 湿模式有温度代码,而送风模式无。 |
关机编码:(与模式、温度、风速等无关)