安卓PDA调用扫描头进行扫码得到返回值

(本人在mui中使用的)

mui.plusReady(() => {
	var receiver;
	main = plus.android.runtimeMainActivity(); //获取activity   
	receiver = plus.android.implements('io.dcloud.android.content.BroadcastReceiver', {
		onReceive: (context, intent) => { //实现onReceiver回调函数    
			plus.android.importClass(intent); //通过intent实例引入intent类,方便以后的‘.’操作    
			alert(intent.getStringExtra("scannerdata") ); //获取数据 ,这里就是扫码之后弹出来的返回值
		}
	});
	var IntentFilter = plus.android.importClass('android.content.IntentFilter');
	var Intent = plus.android.importClass('android.content.Intent');
	var filter = new IntentFilter();
	filter.addAction("com.android.server.scannerservice.broadcast"); //监听扫码广播    
	main.registerReceiver(receiver, filter); //注册监听  
});

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
在Android PDA设备上,通常可以使用KeyEvent来监听PDA上的扫描按钮事件并获取扫描到的条码信息。以下是一个简单的示例代码: 首先,在AndroidManifest.xml文件中添加以下权限声明: ```xml <uses-permission android:name="android.permission.READ_PHONE_STATE" /> ``` 其中,权限"android.permission.READ_PHONE_STATE"用于获取设备状态。 然后,在MainActivity.java文件中实现监听PDA扫描按钮的逻辑: ```java public class MainActivity extends AppCompatActivity { private static final int SCAN_CODE = 139; private boolean isScanKeyDown = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 监听PDA扫描按钮 final Button btnScan = findViewById(R.id.btn_scan); btnScan.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (event.getKeyCode() == SCAN_CODE) { if (event.getAction() == MotionEvent.ACTION_DOWN) { // 扫描按钮按下 isScanKeyDown = true; } else if (event.getAction() == MotionEvent.ACTION_UP) { // 扫描按钮松开 isScanKeyDown = false; } } return false; } }); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == SCAN_CODE) { // 扫描按钮按下 isScanKeyDown = true; return true; } return super.onKeyDown(keyCode, event); } @Override public boolean onKeyUp(int keyCode, KeyEvent event) { if (keyCode == SCAN_CODE) { // 扫描按钮松开 isScanKeyDown = false; return true; } return super.onKeyUp(keyCode, event); } @Override public boolean dispatchKeyEvent(KeyEvent event) { if (event.getKeyCode() == SCAN_CODE) { if (event.getAction() == KeyEvent.ACTION_DOWN) { // 扫描按钮按下 isScanKeyDown = true; return true; } else if (event.getAction() == KeyEvent.ACTION_UP) { // 扫描按钮松开 isScanKeyDown = false; return true; } } return super.dispatchKeyEvent(event); } @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (hasFocus) { // 获取PDA扫描按钮状态 isScanKeyDown = isScanKeyDown(); } } private boolean isScanKeyDown() { try { InputManager inputManager = (InputManager) getSystemService(Context.INPUT_SERVICE); int[] deviceIds = inputManager.getInputDeviceIds(); for (int deviceId : deviceIds) { InputDevice inputDevice = inputManager.getInputDevice(deviceId); int sources = inputDevice.getSources(); if ((sources & InputDevice.SOURCE_KEYBOARD) == InputDevice.SOURCE_KEYBOARD) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { KeyCharacterMap keyCharacterMap = inputDevice.getKeyCharacterMap(); if (keyCharacterMap.getKeyboardType() == KeyCharacterMap.VIRTUAL_KEYBOARD) { return inputDevice.isKeyPressed(SCAN_CODE); } } else { return inputDevice.isKeyPressed(SCAN_CODE); } } } } catch (Exception e) { e.printStackTrace(); } return false; } } ``` 在上述代码中,我们首先在onCreate方法中监听PDA扫描按钮的Touch事件,并根据按钮按下/松开的状态来设置isScanKeyDown变量的值。 然后,我们重写了onKeyDown、onKeyUp和dispatchKeyEvent方法,分别在PDA扫描按钮按下、松开和发生事件时检测并设置isScanKeyDown变量的值。 另外,我们还重写了onWindowFocusChanged方法,在窗口获得焦点时获取PDA扫描按钮的状态,并设置isScanKeyDown变量的值。 最后,我们可以在其他地方根据isScanKeyDown变量的值来判断PDA扫描按钮是否按下,并根据需要获取扫描到的条码信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值