android - 用作确认码的二维码

标签 android zxing

晚上好

我正在开发一款移动增强现实游戏,我想在游戏中使用二维码。我想做的是自己创建二维码,作为密码,以便能够进入游戏的下一阶段。所以从这个意义上说,我需要用户能够从街上的某个位置扫描二维码,如果二维码是合适的,应用程序将继续进行下一个 Activity ,以便继续流程游戏。

我通常检查了 ZXing 库,但无法确切地弄清楚我是否可以以这种方式使用 QR 码,所以我决定在这里询问是否有人从事/做过类似的事情。任何指向示例的指针都将不胜感激。

非常感谢您的帮助, 约翰。

public void onActivityResult(int requestCode, int resultCode, Intent intent) {
        if (requestCode == 0) {
          TextView tvStatus=(TextView)findViewById(R.id.tvStatus);
          TextView tvResult=(TextView)findViewById(R.id.tvResult);



          if (resultCode == RESULT_OK) {
              tvStatus.setText(intent.getStringExtra("SCAN_RESULT_FORMAT"));
              tvResult.setText(intent.getStringExtra("SCAN_RESULT"));

              String a=(intent.getStringExtra("SCAN_RESULT"));

                if (a=="1") {
                    Button next = (Button) findViewById(R.id.proceed);  

                    next.setOnClickListener(new View.OnClickListener() { 

                        public void onClick(View view) {                 
                            Intent myIntent = new Intent(view.getContext(), StoryLine2Part1.class); 
                            startActivityForResult(myIntent, 0);                              
                        }

                    });
                }

          } else if (resultCode == RESULT_CANCELED) {
            tvStatus.setText("Press a button to start a scan.");
            tvResult.setText("Scan cancelled.");
          }
        }


      }
    }

编辑:

我有这个工作(它扫描并正确显示。但是我无法让检查工作,因为不知何故我没有解析我稍后要检查的字符串上的正确值以便继续进行。关于什么的任何想法错了吗?

最佳答案

是的,你完全可以做到。

开始你的 Activity 以获得结果。

     try {
            Intent intent = xzingHelper.getScanQrCodeIntent();
            startActivityForResult(intent, XzingHelper.QR_REQ_CODE);
        } catch (ActivityNotFoundException e) {
            Toast.makeText("You need the ZXing 2D BarCode scanner");
            Intent playIntent = xzingHelper.getZxingGooglePlayIntent();
            startActivity(playIntent);
            finish();
        }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if(requestCode == XzingHelper.QR_REQ_CODE){
            if(resultCode == RESULT_OK){
                String qrCodeValue = xzingHelper.getScanResult(data);
                Log.i("Got ZXing result: "+ qrCodeValue);
                dealWithQrCode(qrCodeValue); // Check if the qr code is for the next level
            } else
            if(resultCode == RESULT_CANCELED) {
                // Cancelled - dont go to next level
                finish();
            }
        }
        super.onActivityResult(requestCode, resultCode, data);
    }

Helper 类,如果他们没有安装 zXing,它会提示他们:

public class XzingHelper {

    public static final int QR_REQ_CODE = 123;

    public Intent getScanQrCodeIntent() {
        Intent intent = new Intent("com.google.zxing.client.android.SCAN");
        intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
        intent.putExtra("SAVE_HISTORY", false);
        intent.putExtra("PROMPT_MESSAGE", "Too dark? Menu > Settings > 'use front light'");
        return intent;
    }

    public Intent getZxingGooglePlayIntent() {
        Uri playUri = Uri.parse("market://details?id=com.google.zxing.client.android");
        Intent playIntent = new Intent(Intent.ACTION_VIEW, playUri);
        return playIntent;
    }

    public String getScanResult(Intent data) {
        return data.getStringExtra("SCAN_RESULT");
    }

}

关于android - 用作确认码的二维码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11668824/

相关文章:

android - 使用 zxing 在 Android 项目中将字符串 QR 编码为图像

ios - Zxing示例中的条形码扫描仪

android - 我如何添加我的条形码并使用 zxing 对其进行解码?

java - Intent.createChooser 安卓二维码阅读器

android - 发生 fragment 加载闪烁时带有导航组件的底部导航

java - 如何通过长按分享声音?

java - 将应用程序添加到华为 protected 应用程序(检查自动运行)

android - 在 fragment tabhost 中的选项卡之间切换

android - 将 TextView 放在 EditText 中

android - 如何在android中使用zxing app扫描格式PDF 417的条码?