ConsumerIrManager работает по-разному с разными производителями - PullRequest
0 голосов
/ 14 июня 2019

Мне нужно отправить определенный шаблон с помощью встроенного ИК-бластера на устройство BLE.

Для этого я использую ConsumerIrManager из Android SDK, но я заметил странное поведение.У меня есть Xiaomi Redmi Note 7 (Android 9) и Samsung Galaxy S6 (Android 8), а приложение имеет minSdk 21, поэтому не нужно беспокоиться о проблемах перед KitKat.

Проблема в том, что та же полезная нагрузкадает различную форму волны.

Шаблон определяется следующим образом:

new int[] { 1800, 1800, 900, 900, 900, 900, 900, 900, 1800, 1800, 1800, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900 };

Числа обозначают длительность (в миллисекундах) каждого сигнала включения / выключения.

Теперь для Xiaomiдекодированный сигнал выглядит так:

Xiaomi decoded signal

, и это именно то, что говорит массив (более длинная часть - 1800, а более короткая - 900 (считая как минимумы, так и максимумы))).

Теперь на Samsung начало декодированного сигнала выглядит нормально, но через некоторое время он начинает действовать по-своему.

Samsung decoded signal

Как вы можете видеть, до тех пор, пока последние 3 бита (001, зеленым) не выглядят нормально, но затем что-то происходит, и он начинает испускать то, что я не определил в массиве.

Кроме того, я протестировал то же самое на Huawei, и он испускает что-то другоеЧем оба этих устройства.

Я что-то упускаю из-за поведения ConsumerIrManager или у меня должна быть разная полезная нагрузка для каждого производителя?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...