내 응용 프로그램을 실행하고 IR 키를 보내야하는 button을 누르면 IR 키가 전송되지 않고 IR 키가 전송되지 않습니다. (나는 arduino를 사용하여 확인합니다) 아마도 내 전화에 대한 주파수가 잘못되었을 수 있습니다. (Redmi Note 5) 다른 공식이있을 수 있습니다. 주파수.
내 코드는 다음과 같습니다.
전송할 키 :
irData.put(R.id.buttonOn, hex2dec("0000 006d 0022 0003 00a9 00a8 0015 003f 0015 003f 0015 " +
"003f 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 003f 0015 003f 0015 003f 0015" +
" 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 0015 003f 0015 0015 0015 0015" +
" 0015 0015 0015 0015 0015 0015 0015 0015 0015 0040 0015 0015 0015 003f 0015 003f" +
" 0015 003f 0015 003f 0015 003f 0015 003f 0015 0702 00a9 00a8 0015 0015 0015 0e6e"));'
IR 데이터를 반환하는 기능
protected String hex2dec(String irData) {
List<String> list = new ArrayList<String>(Arrays.asList(irData
.split(" ")));
list.remove(0); // dummy
int frequency = Integer.parseInt(list.remove(0), 16); // frequency
list.remove(0); // seq1
list.remove(0); // seq2
for (int i = 0; i < list.size(); i++) {
list.set(i, Integer.toString(Integer.parseInt(list.get(i), 16)));
}
frequency = (int) (1000000 / (frequency * 0.241246));
list.add(0, Integer.toString(frequency));
irData = "";
for (String s : list) {
irData += s + ",";
}
return irData;
}
및 전송 방법
public void transmitting(int frequency, int[] pattern) {
ConsumerIrManager cIr = (ConsumerIrManager) getApplicationContext().getSystemService(Context.CONSUMER_IR_SERVICE);
cIr.transmit(frequency, pattern);
}