【问题标题】:Using an external barcode scanner with a Delphi 10.3 Rio Firemonkey Android app使用带有 Delphi 10.3 Rio Firemonkey Android 应用程序的外部条码扫描器
【发布时间】:2020-12-22 07:02:57
【问题描述】:

关于在 SO 中使用带有 Delphi 的条码扫描仪有几个问题,如果这是一个 VCL Windows 应用程序,那就没有什么戏剧性了,但没有一个答案似乎对我有用。这也是关于使用外部扫描仪而不是使用设备相机来扫描条形码,因为这也是轻而易举的事。

在一个 VCL 应用程序中,我无法确定哪个控件具有焦点,我会捕获 KeyPreview 中的所有键,并在获得 CR 时,取前面的值并检查它是否与产品条形码匹配。

不幸的是,Firemonkey 表单没有 KeyPreview,我不能使用 FMX 表单的 KeyDown 事件,因为它有几个能够接收文本输入的控件,如果有的话他们有焦点,该事件不会为表单触发。

这些问题都是基于扫描仪作为 HID 配对的,但作为我正在使用的 Motorola CS3070 蓝牙扫描仪上的一个选项,还有一个 串行端口配置文件强>模式。它仍可与平板电脑配对,但不能用作键盘。

但在 Android UI 中似乎没有任何东西来指示平板电脑有哪些“串行端口”,即使有,我也不知道如何在 Delphi Firemonkey 应用程序中连接并“监听”该端口。

正如其他人所指出的,Android 中的串行端口与 Windows 是不同的野兽,而且看起来 Delphi 10.3 Rio 没有本机支持使用它们。

还有哪些其他选择?

编辑:

查看出售重新命名的 CS3070Zebra 网站,他们的扫描仪有一个 Android SDK,但遗憾的是没有CS3070 但他们确实有一个用于 CS4070。在文档中,他们谈到了使用 BlueToothSNAPI(我认为是 USB/串行模式)进行连接,以及订阅扫描仪事件。

这是我们可以在没有 SDK 的情况下通过 FireMonkey 做的事情吗?

【问题讨论】:

  • Async Professional 软件包中的TApdComPort(可通过 GetIt 下载)是否可以在 Android 上运行?
  • @DelphiCoder。明天我会看看它是否可以工作,尽管支持 HID 扫描仪似乎是未来的要求。

标签: android delphi bluetooth firemonkey barcode-scanner


【解决方案1】:

android 中的大多数条形码阅读器都有一个 SDK 驱动程序并通过广播意图发送数据。 如果有一些关于它的信息或在 SDK 内部,你应该检查设置表单。您只需要活动和类别名称以及 Intent 中的一些额外信息。

【讨论】:

  • 仅举个例子,在我的例子中,Zebra 生成一个类似于 action = "com.symbol.datawedge.decode" 和额外的 "com.symbol.datawedge.data_string" 的广播;数据逻辑:com.datalogic.decodewedge.decode_action,speedata:“com.se4500.onDecodeComplete”等
猜你喜欢
  • 1970-01-01
  • 2012-05-21
  • 1970-01-01
  • 2014-09-03
  • 1970-01-01
  • 1970-01-01
  • 2013-02-12
  • 2017-01-23
  • 1970-01-01
相关资源
最近更新 更多