二维码的安卓库:
1.zxing这个不懂安卓的人,应该搞不定。。。
2.git上找到一个yipianfengye封装好的zxing的几行代码接入的教程,可是年代过于古老,我没有跑起来,莫名其妙的错误一堆。(我是安卓彩笔)
3. HMS Scankit 华为的二维码sdk(这个很简单我喜欢)

步骤如下

1)引用接入华为的sdk,文档在这个 自己看吧。。。
https://developer.huawei.com/consumer/cn/doc/development/HMS-Guides/scan-introduction-4 36

2)调用android

if (cc.sys.isNative && cc.sys.os == cc.sys.OS_ANDROID) {
    jsb.reflection.callStaticMethod(“org/cocos2dx/javascript/AppActivity”, “scan”, “()V”);
}

3)编写安卓部分内容

// 这个用于赋值当前的activity
private static Activity mContext;
// 这个用于判断二维码activity关闭时候的返回值
private static int REQUEST_CODE_SCAN_ONE = 111;
/**扫描二维码 */
public static void scan() {
    Intent intent = new Intent(mContext, ScanKitActivity.class);
    mContext.startActivityForResult(intent, REQUEST_CODE_SCAN_ONE);
}

// activity关闭的结果
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if ((requestCode == REQUEST_CODE_SCAN_ONE) && (resultCode == Activity.RESULT_OK)) {
        HmsScan obj = data.getParcelableExtra(ScanUtil.RESULT);
        if (obj != null && obj.getOriginalValue() != null) {
            String res = obj.getOriginalValue();
            Log.d(“ddd”, “onActivityResult: 扫描结果:” + res);
            RCODE = res;
            this.callJs();
        }
    }
}

/*返回结果/

public void callJs() {
    this.runOnGLThread(new Runnable() {
        @Override
        public void run() {
            String js = “NativeHelper.message({name:”;
            js += “’” + “scan” + “’,”;
            js += “value:’” + RCODE + “’})”;
            Log.d(“ddd”, "run: " + js);
            Cocos2dxJavascriptJavaBridge.evalString(js);
        }
    });
}

4) cocos监听返回的结果

window.NativeHelper = {
    message: function(msg) {
        if(msg) {
            console.log(JSON.stringify(msg))
        }
    }
}

工程地址: https://github.com/uer7e67/cocos-creator-QRcode 36 

更多推荐