Android 连接蓝牙扫码器无输入框的实现

 更新时间:2022年02月25日 14:13:11   作者:Uncle 锅's Blog  
这篇文章主要介绍了Android 连接蓝牙扫码器无输入框的实现,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

Android 的APP 需要集成一个蓝牙扫码器, 特别的是,需要扫码的地方是没有输入框的(EditText),不能通过直觉上理解的通过对EditText输入事件进行监听处理,取得扫码结果。并且设备也没有提供SDK。

细想了一下, 蓝牙扫码器本质应该是个HID设备,相当于蓝牙键盘。而后豁然开朗。

每一次扫码应该会触发按键事件,通过监听当前Activity的按键事件,应该可以实现,无输入框的情况下取得扫码结果。

重载Activity中的dispatchKeyEvent实现按键监听。

@Override
    public boolean dispatchKeyEvent(KeyEvent event) {
        InputDevice inputDevice = event.getDevice();
        if (inputDevice != null) {
            int keyboardType = event.getDevice().getKeyboardType();
            String deviceName = event.getDevice().getName();
            boolean isVirtual = event.getDevice().isVirtual();
            //可以根据输入设备信息判断是否为特定扫码器输入
            if (!isVirtual) {
                scannerHelper.onScanerInput(event);
            }
        }
    }

通常扫码器在扫码结果后会追加一个结束字符,我的这个设备默认为回车。 所以接收到回车可以认为一个扫码结果“输入”完成。

public class ScannerHelper {
    private String buffer ="";
    private MainOneActivity mainOneActivity;
    public ScannerHelper(MainOneActivity mainOneActivity){
        this.mainOneActivity = mainOneActivity;
    }
    public void onScanerInput(KeyEvent event){
        if(event.getKeyCode() == KeyEvent.KEYCODE_ENTER){
            mainOneActivity.onScannerResult(buffer);//回调扫码结果
            buffer="";
        }else{
            if (event.getAction() == KeyEvent.ACTION_UP && event.isPrintingKey()){
                buffer +=  (char)event.getUnicodeChar();
            }
        }
    }
}

测试OK。

到此这篇关于Android 连接蓝牙扫码器无输入框的文章就介绍到这了,更多相关Android 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 安卓自定义流程进度图控件实例代码

    安卓自定义流程进度图控件实例代码

    本篇文章主要介绍了安卓自定义流程进度图控件实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • Android资源文件与层次式导航超详细讲解

    Android资源文件与层次式导航超详细讲解

    这篇文章主要介绍了Android资源文件与层次式导航,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-12-12
  • Flutter开发技巧ListView去除水波纹方法示例

    Flutter开发技巧ListView去除水波纹方法示例

    这篇文章主要为大家介绍了Flutter开发技巧ListView去除水波纹方法示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • Android RecyclerView打造自动循环效果

    Android RecyclerView打造自动循环效果

    这篇文章主要为大家详细介绍了android RecyclerView打造自动循环效果,非常实用的循环滚动效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • Android Canvas绘制文字横纵向对齐

    Android Canvas绘制文字横纵向对齐

    这篇文章主要介绍了Android Canvas绘制文字横纵向对齐,Align属性决定了使用该画笔时,相较于绘制点的水平对称方式,分别是LEFT、CENTER、RIGHT,更多相关内容需要的小伙伴可以参考下面文章详细内容
    2022-06-06
  • Android实现圆形图片的两种方式

    Android实现圆形图片的两种方式

    这篇文章主要为大家详细介绍了Android实现圆形图片的两种方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • Android 服务端将位置信息发送给客户端的实现

    Android 服务端将位置信息发送给客户端的实现

    这篇文章主要介绍了Android 服务端将位置信息发送给客户端的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Android实现图片随手指旋转功能

    Android实现图片随手指旋转功能

    这篇文章主要为大家详细介绍了Android实现图片随手指旋转功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • Android开发之MediaPlayer基本使用方法详解

    Android开发之MediaPlayer基本使用方法详解

    这篇文章主要介绍了Android开发之MediaPlayer基本使用方法,结合实例形式较为详细的分析了MediaPlayer中的常用函数与基本使用技巧,需要的朋友可以参考下
    2017-05-05
  • Android通话默认打开扬声器的方法

    Android通话默认打开扬声器的方法

    这篇文章主要介绍了Android通话默认打开扬声器的方法.小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08

最新评论