我只是在自定义键盘上有一个“扫描”按钮,它应该打开qr代码阅读器并在扫描后将结果返回到webview文本框。扫描按钮在customkeyboard.xml中有keycode -101。
<Key android:codes="-101" android:keyLabel="Scan" android:keyWidth="20%p" android:keyEdgeFlags="left"/>
我试着用这里的按钮做点什么
public class keyboard extends InputMethodService
implements KeyboardView.OnKeyboardActionListener {
private KeyboardView kv;
private Keyboard keyboard;
private boolean caps = false;
@Override
public void onKey(int primaryCode, int[] keyCodes) {
InputConnection ic = getCurrentInputConnection();
playClick(primaryCode);
switch (primaryCode) {
case -101:
Intent qrIntent = new Intent();
qrIntent.setClass(keyboard.this, QRscanner.class);
qrIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(qrIntent);
break;
default:
char code = (char) primaryCode;
if (Character.isLetter(code) && caps) {
code = Character.toUpperCase(code);
}
ic.commitText(String.valueOf(code), 1);
}
}
这些已添加到gradle文件
compile 'com.android.support:appcompat-v7:25.0.0'
compile 'me.dm7.barcodescanner:zxing:1.8.4'
testCompile 'junit:junit:4.12'
compile 'com.journeyapps:zxing-android-embedded:3.4.0'
将相机许可带入清单
<uses-permission android:name="android.permission.CAMERA"></uses-permission>
关于ZXing有很多例子,但不是如何从自定义键盘运行它并将结果添加到webview文本框中。
感谢。