How to read scan module data by android
This article mainly introduces how to read android scan module data, has a certain reference value, interested friends can refer to, I hope you can learn a lot after reading this article, the following let Xiaobian take you to understand.
The details are as follows
Android reads scan module data * * undertake read data in dispatchKeyEvent method * *
Take the read data in the dispatchKeyEvent method
Private StringBuilder mScanCodeBuilder = new StringBuilder (); @ Override public boolean dispatchKeyEvent (@ NonNull KeyEvent event) {LogUtil.d (TAG, "dispatchKeyEvent" + event.getAction () + "," + event.getKeyCode ()); checkLetterStatus (event); / / determine uppercase and lowercase letters if (event.getAction () = = KeyEvent.ACTION_DOWN) {mScanCodeBuilder.append (getInputCode (event)) If (event.getKeyCode () = = KeyEvent.KEYCODE_ENTER) {/ / if it is an enter key, return String scanResult = mScanCodeBuilder.toString (); mScanCodeBuilder.setLength (0); LogUtil.d (TAG, "dispatchKeyEvent," + scanResult); String scanResults = scanResult.replace ("", ") } else {/ / delay post, if there are other events in the 500ms mHandler.removeCallbacks (mScanningFishedRunnable); mHandler.postDelayed (mScanningFishedRunnable, 500);} return true;} return super.dispatchKeyEvent (event);}
Judge upper and lowercase letters
Private void checkLetterStatus (KeyEvent event) {int keyCode = event.getKeyCode (); if (keyCode = = KeyEvent.KEYCODE_SHIFT_RIGHT | | keyCode = = KeyEvent.KEYCODE_SHIFT_LEFT) {if (event.getAction () = = KeyEvent.ACTION_DOWN) {/ / press the shift key to indicate uppercase mCaps = true } else {/ / release the shift key to indicate lowercase mCaps = false;}
Read character method
Private char getInputCode (KeyEvent event) {int keyCode = event.getKeyCode (); char aChar; if (keyCode > = KeyEvent.KEYCODE_A & & keyCode = KeyEvent.KEYCODE_0 & & keyCode