Android 如何在扫描中识别特定的二维码

Android 如何在扫描中识别特定的二维码,android,qr-code,zxing,Android,Qr Code,Zxing,我正在android应用程序上编程,我有一个带有qr扫描仪的程序。当扫描仪检测到扫描时,会发生一些事情。我的问题是我有不止一个二维码,我需要程序来识别正在扫描的二维码。 在我的代码中,我有一个字符串内容,我将其设置为相等的扫描结果,这与每个二维码不同。 我通过在logCat中打印看到结果,我还制作了一个与内容相同的文本视图。在这两种情况下,第一个二维码的扫描结果均为Scanextra1。 然后我说:ifcontents==scanextr1{应该发生一些事情}。但事实并非如此。 有人能帮我吗 我

我正在android应用程序上编程,我有一个带有qr扫描仪的程序。当扫描仪检测到扫描时,会发生一些事情。我的问题是我有不止一个二维码,我需要程序来识别正在扫描的二维码。 在我的代码中,我有一个字符串内容,我将其设置为相等的扫描结果,这与每个二维码不同。 我通过在logCat中打印看到结果,我还制作了一个与内容相同的文本视图。在这两种情况下,第一个二维码的扫描结果均为Scanextra1。 然后我说:ifcontents==scanextr1{应该发生一些事情}。但事实并非如此。 有人能帮我吗

我遇到问题的代码如下所示:

       if (resultCode1 == RESULT_OK) {
         contents = intent.getStringExtra("SCAN_RESULT");
         String format = intent.getStringExtra("SCAN_RESULT_FORMAT");

         int QR = 0;
         Log.v(contents, "QR value" + QR);

         proeve.setText(contents);   
         //String contents2 = proeve.getText().toString(); 

        if (contents == "Scanextra1"){...
  package your.choko.namespace;

  import android.app.Activity;
  import android.content.Intent;
  import android.content.SharedPreferences;
  import android.os.Bundle;
  import android.view.Menu;
  import android.view.MenuInflater;
  import android.view.MenuItem;
  import android.view.View;
  import android.view.View.OnClickListener;
  import android.widget.Button;
  import android.widget.TextView;
  import android.widget.Toast;
  import android.util.Log;

  public class ScanExtra extends Activity {

    String contents;

    public static final String PREFS_NAME = "MyPrefsFile";

boolean extra1, extra2;

public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.scanextra);

     SharedPreferences settings = getSharedPreferences("MyPrefsFile", 0);
           extra1 = settings.getBoolean("fact1", false);
       extra2 = settings.getBoolean("fact2", false);

Button scan = (Button) findViewById(R.id.buttonscanextra);
 scan.setOnClickListener(new OnClickListener() {

 static final int QR_ACTIVITY = 0; 
 public void onClick(View v) {
 Intent intent = new Intent("com.google.zxing.client.android.SCAN");
 intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
 startActivityForResult(intent, QR_ACTIVITY);
 } 
});
 } 

/** Called when the activity is first created. */
 @Override
 public void onPause() {
 super.onPause();

 } 

@Override
 public void onStop() {
 super.onStop();
 } 

public void onActivityResult(int requestCode, int resultCode1, Intent intent) {

    TextView proeve = (TextView) findViewById(R.id.textView1);

    if (requestCode == 0) {

       if (resultCode1 == RESULT_OK) {
         contents = intent.getStringExtra("SCAN_RESULT");
         String format = intent.getStringExtra("SCAN_RESULT_FORMAT");

         int QR = 0;
         Log.v(contents, "QR value" + QR);

         proeve.setText(contents);   

        if (contents == "Scanextra1"){

      //WHAT HAPPENS ON SCAN 1          
        SharedPreferences settings = getSharedPreferences("MyPrefsFile",0);
            SharedPreferences.Editor editor = settings.edit();
            editor.putBoolean("fact1", true);           
            editor.commit();

        Toast toast = Toast.makeText(ScanExtra.this, contents, 9000);
        toast.show();
      startActivity(new Intent(ScanExtra.this, ScanExtraResultat.class));   
     }
    }
    }
    }
活动的整个代码如下所示:

       if (resultCode1 == RESULT_OK) {
         contents = intent.getStringExtra("SCAN_RESULT");
         String format = intent.getStringExtra("SCAN_RESULT_FORMAT");

         int QR = 0;
         Log.v(contents, "QR value" + QR);

         proeve.setText(contents);   
         //String contents2 = proeve.getText().toString(); 

        if (contents == "Scanextra1"){...
  package your.choko.namespace;

  import android.app.Activity;
  import android.content.Intent;
  import android.content.SharedPreferences;
  import android.os.Bundle;
  import android.view.Menu;
  import android.view.MenuInflater;
  import android.view.MenuItem;
  import android.view.View;
  import android.view.View.OnClickListener;
  import android.widget.Button;
  import android.widget.TextView;
  import android.widget.Toast;
  import android.util.Log;

  public class ScanExtra extends Activity {

    String contents;

    public static final String PREFS_NAME = "MyPrefsFile";

boolean extra1, extra2;

public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.scanextra);

     SharedPreferences settings = getSharedPreferences("MyPrefsFile", 0);
           extra1 = settings.getBoolean("fact1", false);
       extra2 = settings.getBoolean("fact2", false);

Button scan = (Button) findViewById(R.id.buttonscanextra);
 scan.setOnClickListener(new OnClickListener() {

 static final int QR_ACTIVITY = 0; 
 public void onClick(View v) {
 Intent intent = new Intent("com.google.zxing.client.android.SCAN");
 intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
 startActivityForResult(intent, QR_ACTIVITY);
 } 
});
 } 

/** Called when the activity is first created. */
 @Override
 public void onPause() {
 super.onPause();

 } 

@Override
 public void onStop() {
 super.onStop();
 } 

public void onActivityResult(int requestCode, int resultCode1, Intent intent) {

    TextView proeve = (TextView) findViewById(R.id.textView1);

    if (requestCode == 0) {

       if (resultCode1 == RESULT_OK) {
         contents = intent.getStringExtra("SCAN_RESULT");
         String format = intent.getStringExtra("SCAN_RESULT_FORMAT");

         int QR = 0;
         Log.v(contents, "QR value" + QR);

         proeve.setText(contents);   

        if (contents == "Scanextra1"){

      //WHAT HAPPENS ON SCAN 1          
        SharedPreferences settings = getSharedPreferences("MyPrefsFile",0);
            SharedPreferences.Editor editor = settings.edit();
            editor.putBoolean("fact1", true);           
            editor.commit();

        Toast toast = Toast.makeText(ScanExtra.this, contents, 9000);
        toast.show();
      startActivity(new Intent(ScanExtra.this, ScanExtraResultat.class));   
     }
    }
    }
    }
}

不应使用==进行字符串比较。改用equals:

使用==时,检查这两个对象是否完全相同。使用equals时,检查两个字符串的内容是否相同

另见:
@user1199422:很高兴提供帮助,欢迎使用堆栈溢出。如果我的回答解决了你的问题,记得接受它用于扫描qrcode r u,将zxing库添加到项目中或将源代码添加到项目中