Android – QRCodeReader (Zxing)

Merhaba arkadaşlar bu yazımızda Zxing kütüphanesi kullanılarak basit bir QR Kod okuyucusu yapacağız.

asdasd

Ekran görüntüsü yukarıda ki gibi olacak. Kodlara geçmeden, build.gradle dosyasına bir kaç ekleme yapmamız gerecek. Dependencies kısmına

compile 'com.journeyapps:zxing-android-embedded:3.2.0@aar'
compile 'com.google.zxing:core:3.2.1'

şeklinde gerekli kütüphaneyi ekliyoruz.

Daha sonra manifests dosyasına izinimizi ekliyoruz;

<uses-permission android:name="android.permission.CAMERA"/>

Şimdi kodlara geçersek;

private Button button;
private TextView text_qr_code_sonuc,txt_sonuc,txt_code_kind,txt_qr_code_kind_result;

ilk kısımda tasarımda eklediklerimizi kodda tanımlıyoruz. Daha sonra ;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final Activity activity = this;
    button = (Button) findViewById(R.id.button);
    txt_sonuc = (TextView) findViewById(R.id.txt_sonuc);
    text_qr_code_sonuc = (TextView) findViewById(R.id.qr_code_sonucu);
    txt_code_kind = (TextView) findViewById(R.id.txt_code_kind);
    txt_qr_code_kind_result = (TextView) findViewById(R.id.txt_qr_code_kind_result);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //Bu activity içinde çalıştırıyoruz.
            IntentIntegrator integrator = new IntentIntegrator(activity);
            //Kütüphanede bir kaç kod tipi var biz hepsini tarayacak şekilde çalıştırdık.
            //integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES);
            //şeklindede sadece qr code taratabilirsiniz.
            integrator.setDesiredBarcodeFormats(IntentIntegrator.ALL_CODE_TYPES);
            //Kamera açıldığında aşağıda yazı gösterecek
            integrator.setPrompt("Scan");
            //telefonun kendi kamerasını kullandırıcaz
            integrator.setCameraId(0);
            //okuduğunda 'beep' sesi çıkarır
            integrator.setBeepEnabled(true);
            //okunan barkodun image dosyasını kaydediyor
            integrator.setBarcodeImageEnabled(false);
            //scan başlatılıyor
            integrator.initiateScan();
        }
    });
}

Bu kısıma kadar yaptıklarımız bize kamerayı açtırıp kodu taratmamıza yarayacak fakat dönen cevabı değerlendirmemiz gerekli. Bunun içinde onCreate metodunun bitimine aşağıdaki kısmı yazıyoruz;

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    //Kütüphane okuduktan sonra bu metodla bize result döndürüyor.
    IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
    if(result != null) {
        if(result.getContents() == null) {
            text_qr_code_sonuc.setText("Kod Sonucu:");
            txt_sonuc.setText("Qr Code Bulunamadı.");
            txt_code_kind.setText("Kod Türü:");
            txt_qr_code_kind_result.setText("Bulunamadı.");
        } else {
            Log.d("MainActivity", "Scanned");
            text_qr_code_sonuc.setText("Kod Sonucu:");
            txt_sonuc.setText(result.getContents());
            txt_code_kind.setText("Kod Türü:");
            txt_qr_code_kind_result.setText(result.getFormatName());
        }
    }
}

 

Sonucu değerlendirmek size kalmış. Ben basit şekilde yapılacakları göstermeye çalıştım. Umarım beğenirsiniz. Uygulamayı buradan indirebilirsiniz.

 

Android – QRCodeReader (Zxing)” üzerine 3 yorum

  1. Uğur

    Textview nesnelerine atama yapılan if bloğunda hata var, ya if içindekiler else kısmında olması lazım ya da != değil de == olması lazım. Onun haricinde onCreate içinde Activity değişkenini tanımlamaya gerek yok, IntentIntegrator new’leme işleminde MainActiviy.this ya da mevcut olan activiy isminde gönderilebilir.

    Onun haricinde döküman için teşekkür ederim. İnternetteki tek karışık olmayan makale ve satır satır kodların ne işe yaradığı da belirtilerek anlama ve öğrenme kısmında büyük yardımı dokundu. Teşekkür ederim…

    Beğen

Yorum bırakın