如何从手持二维码扫描仪获取文本数据?

问题描述 投票:0回答:3

我正在使用霍尼韦尔条码扫描器(HF680)。我将它连接到我的 Android 设备(桌面)。我需要将扫描数据作为文本获取。它像键盘一样工作。所以,好像我无法像相机扫描一样在内部获取数据。

我该如何处理?

我不认为霍尼韦尔的配套SDK和文档。我找不到它。

android qr-code barcode-scanner android-hardware android-usb
3个回答
1
投票

最简单的方法可能是使用

EditText
。聚焦时,扫描仪输入将进入其中。然后你可以从那里阅读它。


0
投票

这取决于您使用的端口。 HF680 提供两个不同的端口。如果你当时使用 USB,则不能使用串行输入。但它充当键盘。所以,你可以

onKeyDown
方法。

    val barcode = StringBuilder("")

    override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
        // TODO: add up the chars
        barcode.append(...)
        return super.onKeyDown(keyCode, event)
    }

通常,扫描仪会提供一些指示结束的功能,例如“ ' 或 Enter 键或特殊字符。否则,您可以设置一个接收时间,以便在几毫秒后它不会附加字符串。


0
投票

dispatchKeyEvent
好用
onKeyDown
.
因为,如果有活动,dispatchKeyEvent() 会将事件传递给 onKeyListener。这是 onKey() 被调用的时候。

  private var barcode = ""
  override fun dispatchKeyEvent(event: KeyEvent): Boolean {
  val c = event.unicodeChar
  //accept 0-9, A-Z, a-z, " " and "enter"
  if (c in 48..57 || c in 65..90 || c in 97..122 || c == 10 || c == 32) {
    if (event.action == 0) {
      if (c in 48..57 || c in 65..90 || c in 97..122 || c == 32) {
        barcode += c.toChar()
      } else {
        if (barcode != "") {
          val bar = barcode
          barcode = ""
          Log.d("barcode", bar)
          //ToDo func()
        }
      }
    }
    return true
  }
© www.soinside.com 2019 - 2024. All rights reserved.