Unity UWP 蓝牙条码扫描器

Posted

技术标签:

【中文标题】Unity UWP 蓝牙条码扫描器【英文标题】:Unity UWP bluetooth barcode scanner 【发布时间】:2021-10-08 14:46:06 【问题描述】:

我一直在研究统一输入调试,试图找出一种方法,我可以读取来自蓝牙条形码扫描仪的字符串。 该设备注册为蓝牙 HID 输入设备,在统一输入调试中,它显示为 Broadcom 无线键盘(虽然不支持......)。 关于如何读取字符串的任何提示? (每个字符串后面的结束字符是 'enter') 在 UI 输入字段中,它会读取字符串并将其关闭(使用输入结束字符)。但在 Hololens 上执行此操作非常不直观,因为键盘显示几乎覆盖了您的所有视野。

【问题讨论】:

您是否尝试过将扫描仪与 HoloLens 设备配对?目前,HoloLens 仅支持 BLE 摩丝、键盘和蓝牙音频输出 (A2DP) 设备,因此最好先检查扫描仪是否可以识别为 HoloLens 中的蓝牙 HID 输入设备。欲了解更多信息,请参阅support.microsoft.com/en-us/help/12636/… 这已经可以了,如果我打开hololens上的任何输入字段并扫描条形码,它将填写扫描的内容。 我的问题是,如何在不强制输入字段始终打开的情况下读取来自 HID 设备的字符串... 【参考方案1】:

建议试试TMP_InputFields,默认会显示一个虚拟键盘,但是你可以控制虚拟键盘的可见性。您可以从位于 Assets/MRTK/Examples/Experimental/MixedRealityKeyboard/Scenes/ 的 MixedRealityKeyboardExample.unity 测试此功能,并选中 MRKeyboardInputField (TMP) 对象的 MRTKTMPInputField 组件中的“隐藏软键盘”复选框。

【讨论】:

我已经在使用 TMP_InputField 但如果我隐藏键盘,条形码输入将不再发生 @HoriaHodis 您是否尝试过从设备获取流?我们认为标准的 Unity UI 输入处理程序或从设备本身获取数据将是一个很好的途径。否则,如果您的需求不是专门针对 Unity 沉浸式应用,并且您愿意使用 2D 平面应用,那么可以使用带有 2D XAML 控件的纯 UWP 应用作为解决方案。 不太确定如何读取流,但我确实查看了 Windows.Devices.HumanInterfaceDevice 以了解它是如何完成的......但是 Unity 抱怨它找不到命名空间并手动添加为 arm 编译时 dll 很麻烦...

以上是关于Unity UWP 蓝牙条码扫描器的主要内容,如果未能解决你的问题,请参考以下文章

蓝牙扫描仪重新连接android

如何从蓝牙 LE 设备获取数据

iPad +条码扫描器关键事件传播速度慢

蓝牙扫描枪直连蓝牙打印机

支持颤振的外部键盘

从没有 UITextField 的外部蓝牙键盘读取