Android 4.4.2上有一个内置激光条形码扫描仪和硬件扫描按钮的设备。是否有任何方法将qr扫描事件与java接口挂钩?设备是SunluxXL-8681d,但它在亚行设备列表中检测为x301。
发布于 2018-03-28 10:41:39
我也使用过类似的设备。当您单击某个可以编辑文本并扫描条形码的区域时,它会在字段中打印吗?如果是,则可以在Activity
中使用以下代码片段
重写dispatchKeyEvent
方法。小样本:
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getCharacters() != null && !event.getCharacters().isEmpty())
//Add more code...
return super.dispatchKeyEvent(event);
}
发布于 2019-08-22 11:52:27
即使没有EditText,您也可以这样做。您需要订阅这样的广播意图:
const val QR_ACTION: String = "android.intent.ACTION_DECODE_DATA"
const val QR_EXTRA: String = "barcode_string"
private val receiver = object : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
try {
Timber.d("Get intent ${intent.action}")
if (QR_ACTION == intent.action) {
if (intent.hasExtra(QR_EXTRA)) {
val code = intent.getStringExtra(QR_EXTRA)
Timber.d("New QR code $code")
// now you have qr code here
}
} }
} catch (t: Throwable) {
// handle errors
}
}
}
请先检查QR_ACTION和QR_EXTRA到您的扫描仪设置,它可以是不同的品牌不同。
https://stackoverflow.com/questions/49532185
复制相似问题