Zxing条码扫描器实现意图

时间:2014-03-10 17:37:18

标签: java eclipse barcode zxing

我一直在寻找关于在我的应用程序中实现条形码扫描器/ 我已经包含了代码,这将使用户能够扫描条形码扫描仪是否已安装但我现在需要一些东西来提示用户下载应用程序(如果尚未安装)?我跟着一个例子让我这么远。

这是我的代码

    package com.example.zxingscan;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;

public class Main extends Activity {
  @Override
  public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    HandleClick hc = new HandleClick();

    findViewById(R.id.butQR).setOnClickListener(hc);

  }

  private class HandleClick implements OnClickListener{

    public void onClick(View arg0) {

      Intent intent = new Intent("com.google.zxing.client.android.SCAN");

      switch(arg0.getId()){

        case R.id.butQR:

          intent.putExtra("SCAN_MODE", "QR_CODE_MODE");

        break;


      }
      startActivityForResult(intent, 0);    //Barcode Scanner to scan for us
    }
  }
  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"));
      } else if (resultCode == RESULT_CANCELED) {
        tvStatus.setText("Press a button to start a scan.");
        tvResult.setText("Scan cancelled.");
      }
    }
  }
}

1 个答案:

答案 0 :(得分:0)

首先创建一个对话框,简要说明情况,并建议从Google Play安装免费的ZXing扫描仪应用程序。添加CancelInstall按钮。我不会在这里解释如何做到这一点。例如,请查看此AlertDialog.Builder tutorial

在用户确认(Install按钮单击)后,您只需启动以下意图:

startActivity(new Intent(Intent.ACTION_VIEW,
    Uri.parse("market://details?id=com.google.zxing.client.android")));

market协议Uri可用于从Google Play市场打开应用详细信息页面。有关详细信息,请参阅this Android documentation page