I am facing an issue with inconsistent KeyEvents while using barcode scanners on two different Android devices. The first device is a Cipherlab scanner running Android 9, and the second one is a Zebra scanner running Android 8.1. I'm using Flutter to develop my application.
Problem: While the Cipherlab scanner produces the expected key events, the Zebra scanner generates a series of KeyRepeatEvents with an unknown logical key and a null character value. This only happens before closing and reopening the app. After that, it starts working as expected.
Here are some logs:
Before closing and reopening - these key presses are just from the hardware button on the scanner to trigger the scan action
I/flutter ( 7704): KeyEvent: KeyDownEvent#9d9b8(physicalKey: PhysicalKeyboardKey#0b109(usbHidUsage: "0x11000002e8", debugName: "Key with ID 0x11000002e8"), logicalKey: LogicalKeyboardKey#38915(keyId: "0x1100002734", keyLabel: "", debugName: "Key with ID 0x01100002734"), character: null, timeStamp: 0:00:02.104150)
I/flutter ( 7704): KeyEvent: KeyRepeatEvent#42666(physicalKey: PhysicalKeyboardKey#0b109(usbHidUsage: "0x11000002e8", debugName: "Key with ID 0x11000002e8"), logicalKey: LogicalKeyboardKey#38915(keyId: "0x1100002734", keyLabel: "", debugName: "Key with ID 0x01100002734"), character: null, timeStamp: 0:00:02.104651)
I/flutter ( 7704): KeyEvent: KeyRepeatEvent#0c5de(physicalKey: PhysicalKeyboardKey#0b109(usbHidUsage: "0x11000002e8", debugName: "Key with ID 0x11000002e8"), logicalKey: LogicalKeyboardKey#38915(keyId: "0x1100002734", keyLabel: "", debugName: "Key with ID 0x01100002734"), character: null, timeStamp: 0:00:02.104702)
I/flutter ( 7704): KeyEvent: KeyRepeatEvent#a8c5a(physicalKey: PhysicalKeyboardKey#0b109(usbHidUsage: "0x11000002e8", debugName: "Key with ID 0x11000002e8"), logicalKey: LogicalKeyboardKey#38915(keyId: "0x1100002734", keyLabel: "", debugName: "Key with ID 0x01100002734"), character: null, timeStamp: 0:00:02.104753)
I/flutter ( 7704): KeyEvent: KeyRepeatEvent#a89ea(physicalKey: PhysicalKeyboardKey#0b109(usbHidUsage: "0x11000002e8", debugName: "Key with ID 0x11000002e8"), logicalKey: LogicalKeyboardKey#38915(keyId: "0x1100002734", keyLabel: "", debugName: "Key with ID 0x01100002734"), character: null, timeStamp: 0:00:02.104803)
I/flutter ( 7704): KeyEvent: KeyRepeatEvent#ffe04(physicalKey: PhysicalKeyboardKey#0b109(usbHidUsage: "0x11000002e8", debugName: "Key with ID 0x11000002e8"), logicalKey: LogicalKeyboardKey#38915(keyId: "0x1100002734", keyLabel: "", debugName: "Key with ID 0x01100002734"), character: null, timeStamp: 0:00:02.104853)
I/flutter ( 7704): KeyEvent: KeyRepeatEvent#5314e(physicalKey: PhysicalKeyboardKey#0b109(usbHidUsage: "0x11000002e8", debugName: "Key with ID 0x11000002e8"), logicalKey: LogicalKeyboardKey#38915(keyId: "0x1100002734", keyLabel: "", debugName: "Key with ID 0x01100002734"), character: null, timeStamp: 0:00:02.104905)
I/flutter ( 7704): KeyEvent: KeyRepeatEvent#608ed(physicalKey: PhysicalKeyboardKey#0b109(usbHidUsage: "0x11000002e8", debugName: "Key with ID 0x11000002e8"), logicalKey: LogicalKeyboardKey#38915(keyId: "0x1100002734", keyLabel: "", debugName: "Key with ID 0x01100002734"), character: null, timeStamp: 0:00:02.104956)
I/flutter ( 7704): KeyEvent: KeyUpEvent#b4a6c(physicalKey: PhysicalKeyboardKey#0b109(usbHidUsage: "0x11000002e8", debugName: "Key with ID 0x11000002e8"), logicalKey: LogicalKeyboardKey#38915(keyId: "0x1100002734", keyLabel: "", debugName: "Key with ID 0x01100002734"), character: null, timeStamp: 0:00:02.104970)
After closing and reopening
I/flutter ( 7704): KeyEvent: KeyUpEvent#51ebd(physicalKey: PhysicalKeyboardKey#fbca9(usbHidUsage: "0x1100000048", debugName: "Key with ID 0x1100000048"), logicalKey: LogicalKeyboardKey#0766d(keyId: "0x0000005d", keyLabel: "]", debugName: "Bracket Right"), character: null, timeStamp: 0:00:02.153266)
I/flutter ( 7704): KeyEvent: KeyDownEvent#26174(physicalKey: PhysicalKeyboardKey#f9316(usbHidUsage: "0x1100000047", debugName: "Key with ID 0x1100000047"), logicalKey: LogicalKeyboardKey#01bcb(keyId: "0x0000005b", keyLabel: "[", debugName: "Bracket Left"), character: "[", timeStamp: 0:00:02.153271)
I/flutter ( 7704): KeyEvent: KeyUpEvent#4cd13(physicalKey: PhysicalKeyboardKey#f9316(usbHidUsage: "0x1100000047", debugName: "Key with ID 0x1100000047"), logicalKey: LogicalKeyboardKey#01bcb(keyId: "0x0000005b", keyLabel: "[", debugName: "Bracket Left"), character: null, timeStamp: 0:00:02.153271)
I/flutter ( 7704): KeyEvent: KeyDownEvent#32cda(physicalKey: PhysicalKeyboardKey#295b8(usbHidUsage: "0x1100000009", debugName: "Key with ID 0x1100000009"), logicalKey: LogicalKeyboardKey#8d9d2(keyId: "0x00000032", keyLabel: "2", debugName: "Digit 2"), character: "2", timeStamp: 0:00:02.153279)
I/flutter ( 7704): KeyEvent: KeyUpEvent#04f8e(physicalKey: PhysicalKeyboardKey#295b8(usbHidUsage: "0x1100000009", debugName: "Key with ID 0x1100000009"), logicalKey: LogicalKeyboardKey#8d9d2(keyId: "0x00000032", keyLabel: "2", debugName: "Digit 2"), character: null, timeStamp: 0:00:02.153279)
I/flutter ( 7704): KeyEvent: KeyDownEvent#230dd(physicalKey: PhysicalKeyboardKey#2f01a(usbHidUsage: "0x110000000b", debugName: "Key with ID 0x110000000b"), logicalKey: LogicalKeyboardKey#93474(keyId: "0x00000034", keyLabel: "4", debugName: "Digit 4"), character: "4", timeStamp: 0:00:02.153285)
I/flutter ( 7704): KeyEvent: KeyUpEvent#40544(physicalKey: PhysicalKeyboardKey#2f01a(usbHidUsage: "0x110000000b", debugName: "Key with ID 0x110000000b"), logicalKey: LogicalKeyboardKey#93474(keyId: "0x00000034", keyLabel: "4", debugName: "Digit 4"), character: null, timeStamp: 0:00:02.153285)
I/flutter ( 7704): KeyEvent: KeyDownEvent#00e94(physicalKey: PhysicalKeyboardKey#1a5de(usbHidUsage: "0x110000000f", debugName: "Key with ID 0x110000000f"), logicalKey: LogicalKeyboardKey#9e9b8(keyId: "0x00000038", keyLabel: "8", debugName: "Digit 8"), character: "8", timeStamp: 0:00:02.153292)
I/flutter ( 7704): KeyEvent: KeyUpEvent#f7ba2(physicalKey: PhysicalKeyboardKey#1a5de(usbHidUsage: "0x110000000f", debugName: "Key with ID 0x110000000f"), logicalKey: LogicalKeyboardKey#9e9b8(keyId: "0x00000038", keyLabel: "8", debugName: "Digit 8"), character: null, timeStamp: 0:00:02.153292)
I/flutter ( 7704): KeyEvent: KeyDownEvent#3b937(physicalKey: PhysicalKeyboardKey#295b8(usbHidUsage: "0x1100000009", debugName: "Key with ID 0x1100000009"), logicalKey: LogicalKeyboardKey#8d9d2(keyId: "0x00000032", keyLabel: "2", debugName: "Digit 2"), character: "2", timeStamp: 0:00:02.153298)
I/flutter ( 7704): KeyEvent: KeyUpEvent#a5e70(physicalKey: PhysicalKeyboardKey#295b8(usbHidUsage: "0x1100000009", debugName: "Key with ID 0x1100000009"), logicalKey: LogicalKeyboardKey#8d9d2(keyId: "0x00000032", keyLabel: "2", debugName: "Digit 2"), character: null, timeStamp: 0:00:02.153298)
I/flutter ( 7704): KeyEvent: KeyRepeatEvent#cd717(physicalKey: PhysicalKeyboardKey#0b109(usbHidUsage: "0x11000002e8", debugName: "Key with ID 0x11000002e8"), logicalKey: LogicalKeyboardKey#38915(keyId: "0x1100002734", keyLabel: "", debugName: "Key with ID 0x01100002734"), character: null, timeStamp: 0:00:02.153304)
I/flutter ( 7704): KeyEvent: KeyDownEvent#a684e(physicalKey: PhysicalKeyboardKey#2f01a(usbHidUsage: "0x110000000b", debugName: "Key with ID 0x110000000b"), logicalKey: LogicalKeyboardKey#93474(keyId: "0x00000034", keyLabel: "4", debugName: "Digit 4"), character: "4", timeStamp: 0:00:02.153305)
I/flutter ( 7704): KeyEvent: KeyUpEvent#2a67f(physicalKey: PhysicalKeyboardKey#2f01a(usbHidUsage: "0x110000000b", debugName: "Key with ID 0x110000000b"), logicalKey: LogicalKeyboardKey#93474(keyId: "0x00000034", keyLabel: "4", debugName: "Digit 4"), character: null, timeStamp: 0:00:02.153305)
I/flutter ( 7704): KeyEvent: KeyDownEvent#48eb3(physicalKey: PhysicalKeyboardKey#1a5de(usbHidUsage: "0x110000000f", debugName: "Key with ID 0x110000000f"), logicalKey: LogicalKeyboardKey#9e9b8(keyId: "0x00000038", keyLabel: "8", debugName: "Digit 8"), character: "8", timeStamp: 0:00:02.153314)
I/flutter ( 7704): KeyEvent: KeyUpEvent#e131f(physicalKey: PhysicalKeyboardKey#1a5de(usbHidUsage: "0x110000000f", debugName: "Key with ID 0x110000000f"), logicalKey: LogicalKeyboardKey#9e9b8(keyId: "0x00000038", keyLabel: "8", debugName: "Digit 8"), character: null, timeStamp: 0:00:02.153314)
I/flutter ( 7704): KeyEvent: KeyDownEvent#3105b(physicalKey: PhysicalKeyboardKey#8ac83(usbHidUsage: "0x1100000042", debugName: "Key with ID 0x1100000042"), logicalKey: LogicalKeyboardKey#2604c(keyId: "0x10000000d", keyLabel: "Enter", debugName: "Enter"), character: "\n", timeStamp: 0:00:02.153323)
I/flutter ( 7704): KeyEvent: KeyUpEvent#9a557(physicalKey: PhysicalKeyboardKey#8ac83(usbHidUsage: "0x1100000042", debugName: "Key with ID 0x1100000042"), logicalKey: LogicalKeyboardKey#2604c(keyId: "0x10000000d", keyLabel: "Enter", debugName: "Enter"), character: null, timeStamp: 0:00:02.153323)
I/flutter ( 7704): KeyEvent: KeyRepeatEvent#fb4ef(physicalKey: PhysicalKeyboardKey#0b109(usbHidUsage: "0x11000002e8", debugName: "Key with ID 0x11000002e8"), logicalKey: LogicalKeyboardKey#38915(keyId: "0x1100002734", keyLabel: "", debugName: "Key with ID 0x01100002734"), character: null, timeStamp: 0:00:02.153355)
I/flutter ( 7704): KeyEvent: KeyRepeatEvent#19821(physicalKey: PhysicalKeyboardKey#0b109(usbHidUsage: "0x11000002e8", debugName: "Key with ID 0x11000002e8"), logicalKey: LogicalKeyboardKey#38915(keyId: "0x1100002734", keyLabel: "", debugName: "Key with ID 0x01100002734"), character: null, timeStamp: 0:00:02.153406)
I/flutter ( 7704): KeyEvent: KeyRepeatEvent#556ee(physicalKey: PhysicalKeyboardKey#0b109(usbHidUsage: "0x11000002e8", debugName: "Key with ID 0x11000002e8"), logicalKey: LogicalKeyboardKey#38915(keyId: "0x1100002734", keyLabel: "", debugName: "Key with ID 0x01100002734"), character: null, timeStamp: 0:00:02.153457)
I/flutter ( 7704): KeyEvent: KeyRepeatEvent#02370(physicalKey: PhysicalKeyboardKey#0b109(usbHidUsage: "0x11000002e8", debugName: "Key with ID 0x11000002e8"), logicalKey: LogicalKeyboardKey#38915(keyId: "0x1100002734", keyLabel: "", debugName: "Key with ID 0x01100002734"), character: null, timeStamp: 0:00:02.153508)
I/flutter ( 7704): KeyEvent: KeyRepeatEvent#01ea9(physicalKey: PhysicalKeyboardKey#0b109(usbHidUsage: "0x11000002e8", debugName: "Key with ID 0x11000002e8"), logicalKey: LogicalKeyboardKey#38915(keyId: "0x1100002734", keyLabel: "", debugName: "Key with ID 0x01100002734"), character: null, timeStamp: 0:00:02.153559)
I/flutter ( 7704): KeyEvent: KeyUpEvent#e98d8(physicalKey: PhysicalKeyboardKey#0b109(usbHidUsage: "0x11000002e8", debugName: "Key with ID 0x11000002e8"), logicalKey: LogicalKeyboardKey#38915(keyId: "0x1100002734", keyLabel: "", debugName: "Key with ID 0x01100002734"), character: null, timeStamp: 0:00:02.153582)
all code: https://github.com/SeanKD/barcode_listener/tree/Amble
Checked DataWedge settings (for the Zebra scanner)