2011-04-09 28 views
11

Zxing 1.6'yı indirdim ve başarılı bir barkod tarayıcısını başarıyla çalıştırabildim. Şimdi bu tarayıcı başka bir projede ve (CaptureActivity) ve benim uygulamasının MyProj adlı farklı bir projesine sahibim. Tüm yapmak istediğim, başka bir projedeki CaptureActivity projesindeki düğmeyi tıklamak istiyorum, projenin tamamını nasıl alabilirim? projem ya da ne yapacağım bu işe yarıyor. ÖncedenBir tuş üzerinde barkod tarayıcı arama android uygulamasında tıklayın

+1

"barkod tarama" için çağırabileceğiniz genel bir meme benzeri tip var mı? Bu amaç, zxing uygulamasını açık bir şekilde belirtir. – masi

+0

"com.google.zxing.client.android.SCAN", tarama için genel "Amaç" dır. Sadece ZXing'in Android 1.0'dan beri etrafında olması bu yüzden de facto standardı. Sadece Barcode Scanner'ı seçmez. –

cevap

33

Barkod Tarayıcısını "kopyalama" ve uygulamanıza eklemenin projelerinizi aşırı yüklemesini gerektirdiğini düşünüyorum. Buradan

: Kesinlikle Tarayıcıdan Niyet kullanmalıdır http://code.google.com/p/zxing/wiki/ScanningViaIntent

Barcode Scanner Android cihazınızda yüklü ise, bu sizin için taramak ve sadece bir göndererek, sonucu döndüren olabilir niyet. Örneğin, böyle bir QR kodunu taramak için bir düğmeye kanca edebilirsiniz: Daha fazla seçenek için

public Button.OnClickListener mScan = new Button.OnClickListener() { 
    public void onClick(View v) { 
     Intent intent = new Intent("com.google.zxing.client.android.SCAN"); 
     intent.setPackage("com.google.zxing.client.android"); 
     intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); 
     startActivityForResult(intent, 0); 
    } 
}; 

public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    if (requestCode == 0) { 
     if (resultCode == RESULT_OK) { 
      String contents = intent.getStringExtra("SCAN_RESULT"); 
      String format = intent.getStringExtra("SCAN_RESULT_FORMAT"); 
      // Handle successful scan 
     } else if (resultCode == RESULT_CANCELED) { 
      // Handle cancel 
     } 
    } 
} 

, bir ürün barkodu tarayarak veya kodlamak ve sizin için bir barkod görüntülemek için Barkod Tarayıcı sormak gibi, bu kaynağı bkz dosya:

http://code.google.com/p/zxing/source/browse/trunk/android/src/com/google/zxing/client/android/Intents.java

Ve burada bunların nasıl kullanılacağını gösterir test uygulamasından bazı kaynağıdır:

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

IntentIntegrator

Ayrıca, yukarıdaki ayrıntıların bazılarını kaplayan küçük bir sınıflar kütüphanesi oluşturmaya da başladık. Entegrasyon için daha kolay bir yol için IntentIntegrator'a bakın. Özellikle bu, Barkod Tarayıcının henüz yüklü olmadığı durumu ele alacaktır.

http://code.google.com/p/zxing/source/browse/trunk/android-integration/src/com/google/zxing/integration/android/IntentIntegrator.java

Barcode Scanner v2.6 itibariyle URL'ye Via, ayrıca Tarayıcıda bir URL'den uygulama oluşturabilirsiniz. Basit http://zxing.appspot.com/scan için bir köprü oluşturmak ve Barkod Tarayıcı bunu işlemek için başlatmayı teklif edecek. Kullanıcılar ayrıca her zaman otomatik olarak Barkod Tarayıcısını açmayı seçebilirler.

Not: Bu URL bir tarayıcıda gerçek bir web sayfası sunmak için tasarlanmamıştır, yalnızca yerel bir uygulamayı başlatmak için bir kancadır. Bilinen Sorunlar Kullanıcı jamesikanos

aşağıdaki 'gotcha' raporları:

bir çocuk etkinliği oluşturun launchMode "SingleInstance" ile TabHost aktivitesini Oluştur bu düğmeden IntentIntegrator kullanarak ZXing düğmesi (başlatıldığını "tarama başlat" onActivityResult, çocuğunuzun aktivitesinde hemen "iptal edildi" olarak geri dönecektir onActivityResult hiç bir zaman daha sonradan adlandırılmamıştır

+0

Paketini ayarlamadan niyetini başlatırsanız, yüklü varsayılan qr kod okuyucunuzu (benim durumumda qr druid) veya birden fazla kartınız varsa bir yardımcı iletişim kutusu alırsınız – Radon8472