Android 无 EditText 情况下接受扫码枪扫描数据(应用场景:自助收银设备、自助售货柜扫描fukuan)

mac2024-04-13  32

关键点:重写activity中的dispatchKeyEvent方法

Kotlin版:

import android.os.Handler import android.os.Message import android.support.v4.app.FragmentActivity import android.view.KeyEvent import android.widget.Toast class MainActivity : FragmentActivity() { private var barcode: String = "" private var mHandler: Handler = object : Handler() { override fun handleMessage(msg: Message) { //处理业务逻辑 Toast.makeText(applicationContext, "barcode--->>".plus(msg.obj), Toast.LENGTH_LONG).show() } } override fun dispatchKeyEvent(event: KeyEvent): Boolean { if (event.action == KeyEvent.ACTION_DOWN) { val pressedKey = event.unicodeChar.toChar() barcode += pressedKey } if (event.action == KeyEvent.ACTION_DOWN && event.keyCode == KeyEvent.KEYCODE_ENTER) { val msg = Message.obtain() msg.what = 1 msg.obj = barcode.trim() mHandler.sendMessage(msg) barcode = "" } return super.dispatchKeyEvent(event) } }

 

最新回复(0)