我需要使用内置的IR blaster向BLE设备发送特定的图案。
为此,我使用的是Android SDK中的ConsumerIrManager
,但是我注意到了奇怪的行为。我有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 };
数字表示每个开/关信号的持续时间(以毫秒为单位)。
现在,对于小米来说,解码后的信号看起来像这样:
这正是数组所说的(较长的部分为1800,较短的部分为900(同时计算低点和高点))。
现在,在三星上,解码信号的开始看起来还不错,但是过了一段时间,由于某种原因,它开始做自己的事情。
如您所见,直到最后3位(绿色的001)看起来还不错,但是随后发生了一些事情,并且开始发出我在数组中未定义的内容。
此外,我已经在华为上测试了相同的东西,它发出的东西不同于这两种设备。
我是否缺少有关ConsumerIrManager
行为的信息,还是每个制造商都必须拥有不同的有效负载?