我想尝试用一个简单的应用程序打开我的(旧)汽车(有红外线接收器)。
在 key 的电子板上,我有一张带有代码的纸(例如:06495 167.5) 我认为这个例子中的代码只是 06495,基于这个来源: http://farancullas.blogspot.fr/2012/10/recodificacion-receptor-infrarojo.html
在 android 上你必须发送一个转换为 dec 的 HEX 代码? 这是我的代码的一部分(工作是因为没有异常(exception),我的笔记 3 上有蓝色 LED)。
我只需要一些帮助来正确格式化 IR_CODE 变量。我可以发送任何它似乎有效的字符串,因为 LED 正在闪烁。 你有想法格式化这段代码吗? 我认为它类似于 hex2dec("195F") ? 195F 十六进制为 6495
它可以是: IR_CODE=hex2dec(Integer.toHexString(Integer.decode(IR_CODE))); 基于此来源:https://github.com/rngtng/IrDude/blob/master/src/com/rngtng/irdude/MainActivity.java ,但我不确定,我不能对应用程序进行太多测试。
String IR_CODE="06495";
Class irClass = irService.getClass();
Class params[] = new Class[1];
params[0] = String.class;
try {
Method sendIR = irClass.getMethod("write_irsend", params);
for(int i=0;i<2;i++)
sendIR.invoke(irService, IR_CODE);
}
你能帮我格式化 IR_CODE 吗? 谢谢!
最佳答案
其实,没那么容易。 “IR HEX”不是十六进制数,它是几个十六进制值的字符串,它编码频率和开/关模式,
因此,您的“06495”示例微不足道,您必须获得 IR 学习设备才能了解实际的 IR 模式。
我使用 IR TOY 作为硬件,使用 AnalysIR 作为软件,这为您提供了任何 IR 发射器(就像在您的 Remote 中)的“IR HEX”。
然后,有了“IR HEX”字符串,就可以使用hex2dec函数了。
关于java - 如何发送红外代码,将字符串转换为 "IR string",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22051695/