2012-06-28 4 views
0

я прочитал QR/штрих-кода с использованием библиотеки ZXing, в настоящее время мой проект читает Qr/штрих-кода из SDCard и его расшифровкеBarcode Reader с помощью ZXing

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

Вот мой код

public static class Global 
{ 
    public static String text=null; 
} 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    Bitmap bMap = BitmapFactory.decodeFile("/sdcard/2.gif"); 
    TextView textv = (TextView) findViewById(R.id.mytext); 
    View webbutton=findViewById(R.id.webbutton); 
    LuminanceSource source = new RGBLuminanceSource(bMap); 
    BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source)); 
    Reader reader = new MultiFormatReader(); 
    try { 
     Result result = reader.decode(bitmap); 
     Global.text = result.getText(); 
      byte[] rawBytes = result.getRawBytes(); 
      BarcodeFormat format = result.getBarcodeFormat(); 
      ResultPoint[] points = result.getResultPoints(); 
      textv.setText(Global.text); 
      webbutton.setOnClickListener(this); 
    } catch (NotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (ChecksumException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (FormatException e) { 
     // TODO Auto-generated catch block 
e.printStackTrace(); 


    } 
} 

@Override 
public void onClick(View v) { 
    Uri uri = Uri.parse(Global.text); 
    Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
    startActivity(intent); 




} 

ответ

0

Вам нужно вызвать ZXing намерение в вашей деятельности и расслабиться.

Сначала нужно добавить код для вызова Намерение:

IntentIntegrator integrator = new IntentIntegrator(yourActivity); 
integrator.initiateScan(); 

Во-вторых, добавить к вашей деятельности для обработки результата:

public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent); 
    if (scanResult != null) { 
    // handle scan result 
    } 
    // else continue with any other code you need in the method 
    ... 
} 

инвестировать свое время, чтобы пройти через вики-странице Zxing.They объяснили это очень красиво.

http://code.google.com/p/zxing/w/list

http://code.google.com/p/zxing/wiki/ScanningViaIntent

Вот пример приложения, демонстрирующий, как вызвать ZXing намерения.

http://code.google.com/p/zxing/source/browse/trunk/androidtest/src/com/google/zxing/client/androidtest/ZXingTestActivity.java

Наконец Test Project + Библиотека находится в

http://code.google.com/p/zxing/source/browse/trunk#trunk%2Fandroid-integration%253Fstate%253Dclosed

+0

я использовать его с намерением, но когда я сканирую код с камеры устройства, ничего не происходит, а цель и resultCode равны нулю – sara

+0

. Почему у вас возникают какие-либо ошибки? вы включили разрешение камеры? –

+0

Да, я включаю разрешение камеры, im не получив ошибку – sara

0

Это зависит от того, нравится ли вам использовать внешнее приложение, как ZXing (в этом случае вы просто отправить намерение и он сканирует штрих-код для вас и возвращает результат), или делать все, что в вашей заявление. В этом случае вам нужен код для управления изображениями предварительного просмотра, привязки изображения и подачи данных в библиотеку ZXing (или что-то еще).

Этот проект демки: http://sourceforge.net/projects/javaocr/

содержит все, вплоть до разбора штрих-кода (данные изображения скормить OCR двигателя вместо)

+0

я использую намерение тоже, но это, кажется, камера устройство не работает ZXing намерения, – sara

Смежные вопросы