This article shares the specific code for Android reading scan code module data for your reference. The specific content is as follows
Android reads scan code module data**Receive the read data in the dispatchKeyEvent method**
Receive the read data in the dispatchKeyEvent method
private StringBuilder mScanCodeBuilder = new StringBuilder(); @Override public boolean dispatchKeyEvent(@NonNull KeyEvent event) { (TAG, "dispatchKeyEvent " + () + ", " + ()); checkLetterStatus(event);//Judge uppercase and uppercase letters if (() == KeyEvent.ACTION_DOWN) { (getInputCode(event)); if (() == KeyEvent.KEYCODE_ENTER) { //If it is the Enter key, return directly String scanResult = (); (0); (TAG, "dispatchKeyEvent, " + scanResult); String scanResults = (" ", ""); } else { //Delay post, if there are other events within 500ms (mScanningFishedRunnable); (mScanningFishedRunnable, 500); } return true; } return (event); }
Determine uppercase and uppercase letters
private void checkLetterStatus(KeyEvent event) { int keyCode = (); if (keyCode == KeyEvent.KEYCODE_SHIFT_RIGHT || keyCode == KeyEvent.KEYCODE_SHIFT_LEFT) { if (() == KeyEvent.ACTION_DOWN) { //Press shift key to indicate capitalization mCaps = true; } else { //Release shift key to lowercase mCaps = false; } } }
Reading characters
private char getInputCode(KeyEvent event) { int keyCode = (); char aChar; if (keyCode >= KeyEvent.KEYCODE_A && keyCode <= KeyEvent.KEYCODE_Z) { //letter aChar = (char) ((mCaps ? 'A' : 'a') + keyCode - KeyEvent.KEYCODE_A); } else if (keyCode >= KeyEvent.KEYCODE_0 && keyCode <= KeyEvent.KEYCODE_9) { //number aChar = (char) ('0' + keyCode - KeyEvent.KEYCODE_0); } else { //symbol switch (keyCode) { case KeyEvent.KEYCODE_GRAVE: aChar = '`'; break; case KeyEvent.KEYCODE_COMMA: aChar = ','; break; case KeyEvent.KEYCODE_APOSTROPHE: aChar = '\''; break; case KeyEvent.KEYCODE_POUND: aChar = '#'; break; case KeyEvent.KEYCODE_STAR: aChar = '*'; break; case KeyEvent.KEYCODE_PERIOD: aChar = '.'; break; case KeyEvent.KEYCODE_MINUS: aChar = mCaps ? '_' : '-'; break; case KeyEvent.KEYCODE_SLASH: aChar = '/'; break; case KeyEvent.KEYCODE_BACKSLASH: aChar = mCaps ? '|' : '\\'; break; case KeyEvent.KEYCODE_EQUALS: aChar = '='; break; case KeyEvent.KEYCODE_SEMICOLON: aChar = ';'; break; case KeyEvent.KEYCODE_PLUS: aChar = '+'; break; case KeyEvent.KEYCODE_AT: aChar = '@'; break; case KeyEvent.KEYCODE_LEFT_BRACKET: aChar = '['; break; case KeyEvent.KEYCODE_RIGHT_BRACKET: aChar = ']'; break; default: aChar = ' '; break; } } (TAG, "char" + aChar); return aChar; }
Delay 500ms related
private Handler mHandler = new Handler(this); private final Runnable mScanningFishedRunnable=new Runnable() { @Override public void run() { } };
The above is all the content of this article. I hope it will be helpful to everyone's study and I hope everyone will support me more.