1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Android 4 通过 USB 连接扫描枪 获得扫描信息 解决扫描枪接入或断开导致数据丢

Android 4 通过 USB 连接扫描枪 获得扫描信息 解决扫描枪接入或断开导致数据丢

时间:2019-01-09 14:40:23

相关推荐

Android 4 通过 USB 连接扫描枪 获得扫描信息 解决扫描枪接入或断开导致数据丢

Android 通过 USB 连接扫描枪 获得扫描信息

通常,扫描枪支持 USB 连接或者蓝牙连接,这里只介绍 USB 连接方式,想了解蓝牙方式可以参考这篇文章:/czhpxl007/article/details/50363766

实现思路:扫描枪扫码的操作其实就相当于用键盘一次性输入一串字符,结束符就是回车键,因此,可以通过监听键盘输入来获得扫描内容。

步骤一:创建扫码枪事件解析类ScanGunKeyEventHelper

public class MainActivity extends AppCompatActivity {public static String scannerStr = "";//储存最近一次扫描枪扫描的内容ScanGunKeyEventHelper mScanGunKeyEventHelper;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.mylayout);mScanGunKeyEventHelper = new ScanGunKeyEventHelper();......}/*** Activity 截获按键事件.发给 ScanGunKeyEventHelper* @param event* @return*/@Overridepublic boolean dispatchKeyEvent(KeyEvent event) {mScanGunKeyEventHelper.analysisKeyEvent(event);return true;}}

步骤二:在需要使用扫描枪的 Activity 中监听键盘事件,使用ScanGunKeyEventHelper 获得扫描枪的内容

public class MainActivity extends AppCompatActivity {public static String scannerStr = "";//储存最近一次扫描枪扫描的内容ScanGunKeyEventHelper mScanGunKeyEventHelper;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.mylayout);mScanGunKeyEventHelper = new ScanGunKeyEventHelper();......}/*** Activity 截获按键事件.发给 ScanGunKeyEventHelper* @param event* @return*/@Overridepublic boolean dispatchKeyEvent(KeyEvent event) {mScanGunKeyEventHelper.analysisKeyEvent(event);return true;}}

可能出现的问题:重新接入或断开扫描枪时,页面重新加载导致数据丢失或有额外线程同时运行等问题

分析:扫描枪作为 Android 的外接设备,功能上来说就相当于外接键盘而当 Android 的配置发生变化时(屏幕旋转、键盘接入或断开等等),Android 会重启正在运行的 Activity(先后调用 onDestroy() 和 onCreate())。重启行为旨在通过利用与新设备配置匹配的备用资源自动重新加载您的应用,来帮助它适应新配置。因此,我们只要告诉 Android 不需要在键盘状态变化时重启 Activity 即可。

解决方法:在 app/manifests/AndroidManifest.xml 中找到当前 Activity ,添加一下内容即可 :

android:configChanges="orientation|keyboard"

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="/apk/res/android"package="com.example.administrator.myapplication"><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/AppTheme"><activity android:name=".MainActivity"android:configChanges="orientation|keyboard"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><!--其他 Activity 注册信息-->......</manifest>

------------------------------------------------------------------------------------------------------------------------

参考资料:

/czhpxl007/article/details/50363766

/guide/topics/resources/runtime-changes?hl=zh-cn

Android 4 通过 USB 连接扫描枪 获得扫描信息 解决扫描枪接入或断开导致数据丢失和有额外线程同时运行

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。