这是我用来实现QR码扫描程序的代码的一部分,使用zxing库。
单击该按钮后,将激活mScannerView.stopCamera(),并显示扫描屏幕。如果我从该屏幕按下电话后退按钮,则在读取任何qrcode之前,应用程序将完全关闭,并且不会返回上一个活动。在阅读任何qr代码之前,当我按下手机上的后退按钮时,如何返回上一个活动(从调用startCamera()的位置开始)?有什么想法吗?
新活动:
导入com.google.zxing.Result; import me.dm7.barcodescanner.zxing.ZXingScannerView;
public class New extends Activity实现ZXingScannerView.ResultHandler {
private ZXingScannerView mScannerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new);
}
public void onClick(View v){
mScannerView = new ZXingScannerView(this);
setContentView(mScannerView);
mScannerView.setResultHandler(this);
mScannerView.startCamera();
}
@Override
protected void onPause() {
super.onPause();
mScannerView.stopCamera();
}
@Override
public void handleResult(Result result) {
//Do anything with result here :D
Log.w("handleResult",result.getText( ));
AlertDialog.Builder builder= new AlertDialog.Builder(this);
builder.setTitle("Scan Result");
builder.setMessage(result.getText());
AlertDialog alertDialog = builder.create();
alertDialog.show();
//Resume scanning uncomment below
//mScannerView.resumeCameraPreview(this);
}
}
答案 0 :(得分:1)
就个人而言,我使用这个包。见https://github.com/journeyapps/zxing-android-embedded。可以使用清除指令在Gradle中进行设置。
在原始活动中,添加以下内容。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if(result != null && resultCode == RESULT_OK) {
// if user scanned and the result is valid, do your stuff here
} else {
// if user pressed back or there's error, do your stuff here
}
}