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