从自定义键盘按钮打开QR扫描仪

时间:2016-12-08 19:44:58

标签: android keyboard qr-code zxing custom-keyboard

我只是在自定义键盘上有一个“扫描”按钮,它应该打开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文本框中。

感谢。

0 个答案:

没有答案