2012-02-01 3 views
1

Я хочу сделать приложение, в котором пользователь сканирует штрих-код продукта, а затем на Android-телефоне будут показаны некоторые сведения о продукте (из базы данных). Я установил сканер штрих-кода ZXing на свой Android-телефон, который я использую для отладки моих приложений. Когда я использую приложение ZXing, он сканирует штрих-коды. Но когда я открываю ZXing из моего проекта андроида со следующим кодом, который я нашел в другом сообщении здесь, он не сканирует штрих-код. Я вижу красную линию в камере моего телефона, но она не показывает зеленые точки что «прочитал» штрих-код.Сканер штрих-кода в android не сканирует

Calling barcode scanner on a button click in android application

Почему это могло произойти? Заранее спасибо

ответ

1

попробуйте код ниже. Это рабочий код, который я использовал сам.

public class MyTestActivity extends Activity { 
    @Override 
     public void onCreate(Bundle icicle) { 
     super.onCreate(icicle); 
    Button b = new Button(this); 
    b.setText("Scan"); 
    b.setWidth(100); 
    LinearLayout ll = new LinearLayout(this); 

    b.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
      Intent intent = new Intent("com.google.zxing.client.android.SCAN"); 
      startActivityForResult(intent, 0); 
     } 
    }); 

     ll.addView(b); 
     setContentView(ll); 

    } 

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

//  IntentResult scanResult = IntentIntegrator.parseActivityResult(
//     requestCode, resultCode, intent); 

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

       Dialog d = new Dialog(this); 
       LinearLayout ll = new LinearLayout(this); 
       TextView tv = new TextView(this); 
       tv.setText(contents+" "+format); 
       ll.addView(tv); 
       d.setContentView(ll); 
       d.show();   
      } 
     } 
    } 
     } 

надеюсь, что это помогает

+0

Он должен работать так же без разрешения CAMERA. Поскольку вы запускаете активность Zxing по назначению и обрабатываете все с помощью камеры, только приложение Zxing должно удерживать разрешение CAMERA. – FoamyGuy

+0

FYI даже пример пакета androidtest zxing имеет разрешение в файле манифеста. –

+0

Да, действительно, он работает без этого набора разрешений. Я бы использовал его в качестве меры предосторожности. :) –

0

Сергей, выше код будет работать для QR-кода, а не для штрих-кода, вы проверили штрих-код.

Пожалуйста, дайте мне знать, что кто-то работает с штрих-кодом с Zxing lib.

0

У меня была та же проблема, решить изменить

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

в

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