Я делаю приложение, которое использует ИК-бластер для управления моим телевизором. Приложение отлично работало на моем Galaxy s5, но не на моем HTC ONE M8. Мне удалось изменить код, чтобы заставить его работать на HTC, и я предположил, что это была просто изолированная проблема с телефонами HTC. Однако, как только я обновился до Lollipop, мое приложение IR blaster больше не работает для меня. Я тестировал свое приложение на разных телефонах, и вероятность того, что ИК-бластер будет работать, составляет примерно 50/50 (да, я использую только устройства с ИК-бластерами).
Итак, мой вопрос: нужно ли мне изменять способ передачи с помощью ИК-бластера для другой версии Android?
Единственная причина, по которой я могу придумать, что ИК-бластер не работает, может быть, потому что в него были внесены изменения от версии к версии Android? Итак, мне нужно изменить свой код в зависимости от того, на какой версии Android работает телефон? Кто-нибудь знает, правильно ли это?
Мой код для передачи на моем Galaxy s5:
// Get a reference to the ConsumerIrManager
mCIR = (ConsumerIrManager)getSystemService(Context.CONSUMER_IR_SERVICE);
//If no ir blaster
if (!mCIR.hasIrEmitter()) {
Toast.makeText(getApplicationContext(), "Possibly No IR Blaster", Toast.LENGTH_LONG).show();
}
// otherise send signal
else {
mCIR.transmit(freq, PATTERN);
}
Затем для устройства HTC я делаю все то же самое, за исключением того, что по какой-то причине меняю свою функцию.
Код для устройства HTC:
mCIR.transmit(freq, translateForHTCDevices(PATTERN));
// Then here is how I modify it for HTC devices, just multiply each value by 27.7... weird right?...
private int[] translateForHTCDevices( int [] input) {
int [] result = new int[input.length];
for( int i = 0; i < input.length; i++) {
result[i] = (int) (input[i] * (27.7));
}
return result;
}
Так что я делаю неправильно здесь? Это проблема с устройствами HTC или просто устройство HTC, с которым я тестировал, работает на другой версии Android, и на самом деле проблема в том, что мой код не работает на некоторых версиях Android?
Спасибо за любую помощь, которую вы можете предоставить, я действительно застрял здесь, как заставить ИК-бластер работать на всех устройствах со всеми версиями Android.