Ben de onun app gömülü ZXing barkod tarayıcı olması gereken başka bir şanssız android geliştirme acemi değilim.
Burada, yığın akışında bunun nasıl yapılacağını soran çok fazla soru var ama bunların hiçbiri, yeni başlayanlar için gerçekten anlaşılabilir ve açıklayıcı olan bir cevaba sahip değil. Bütün cevaplar "Yapmanız gereken tek şey ZXing projesinin çekirdek kütüphanesini oluşturmak, projenize referans vermek ve daha sonra ZXing'in android / dizinindeki bazı kodları uygulamanıza kopyalamaktır". Ama bu bir noob için çok yararlı değil.
Projemde referans verilen ZXings çekirdek kitaplığım var. Barkod Okuyucu uygulaması kaynağım açık. Barkod Okuyucu uygulamasının kodunu okuyup anlamaya çalışıyorum ama bilgi seviyem için çok karmaşık.
Sadece bir barkod tarayıcısı açıldığında, tarayıcı sadece bir barkodu tarayabilmeli, kod çözebilmeli ve numaraları geri göndermeyecek, herhangi bir yere kodu göndermeye gerek duymayacak bir butonum var. Herhangi bir bilgi vb olsun, bu şeylerin kendime dikkat et. Sadece butona tıklayarak başlayan, kodu tarar ve bana sonuç veren basit bir tarayıcıya ihtiyacım var. Ama bunu kendim nasıl yapacağımı anlayamıyorum.
ZXing tarayıcısından sadece bazı metinleri kopyalamanız gerekiyorsa, bunun yapılması zor olmamasının, sadece kodunu anlamanız gerektiğini varsayıyorum.
Eğer birisi bunu açıklayabilirse (kodun hangi kısımlarının kopyalanacağını, tarayıcıya nasıl tıklanacağını onClick yönteminde vb. Söyleyin) lütfen yapın, eminim ki bende bunun için gerçekten minnettar olacak birçok insan var. olmak.
Tam olarak ne yapmak istediğini yapmak zorundaydım. O kadar kolay değildi, ama çok da kötü değildi. Ayrıca benim ilk (ticari veya başka türlü) Android uygulaması oldu.
Yaptığım şey:
- Derlenmiş ZXing projesini edinin
ve makinenizde çalışıyor. Orada
bunun nasıl yapılacağı konusunda iyi bir öğretici İşte.
-
Bu kodu ihtiyaçlarınıza göre uyarlayın. Projenin birçoğunu sadece temel tarayıcıya ayırdım. Daha sonra projemin geri kalanı etrafında yaptım. İşte bunu nasıl yapacağız.
-
CaptureActivity'yi çekirdekte olabildiğince basit hale getirin. İhtiyacınız olan tek şey çekirdek tarayıcı kodundan döndürülen sayıdır. İşte projemin yapısının bir resmi:
-
Bulmanız gereken şey, değiştirilmiş Etkinlik Sınıfınızın çalışması için 4 dosyayı değiştirmeniz gerektiğidir. Bu dosyalar, CameraCaptureActivity sınıfı, CaptureActivityHandler sınıfı ve Decode Thread ve Decode işleyicisi sınıflarıdır. Bu dosyaları barındırdım İşte.
-
Bu dört dosyayı alın ve bunları ZXing çalışma projenizin bir kopyasına koyun. Orijinal CaptureActivity ve değiştirdiğiniz diğer Orijinal Konuları ve İşleyici Sınıflarını kaldırın. (CaptureActivityHandlerDemo dosyasını, yanlışlıkla yüklendiği gibi yoksayın)
-
Paket adlarını çalışan ZXing paket adlarıyla eşleşecek şekilde değiştirin. Etkinlikinizin, bu Sınıfların dördünde de aynı şekilde adlandırıldığından emin olun. Etkinlik Sınıfının kendisi yerine "getHolder" uygulayan bir arayüzde geçmek iyi bir fikir olabilir.
-
Bildirinizi, Etkinlik Adınızdaki değişikliklerle güncellediğinizden emin olun. Aktiviteye gitmenin bir yolu olduğundan emin olun - belki de amaç filtre alanında varsayılan sınıf olun.
-
Etkinliğiniz için bir düzen dosyası ekledim - bu çok basit, ancak tarayıcıyı çalışır duruma getirmek için ihtiyacınız var. buna camera_capture.xml denir
Umarım bu, kalkıp kaçmak için ihtiyacınız olan her şeydir. Bu kolay bir süreç değildir ve maalesef size tüm projemi ticari bir ürün olarak veremem.
İyi şanslar!!
PS lütfen bu soruya yorum olarak herhangi bir soru gönderin ve yardım için elimden gelenin en iyisini yapacağım.
Barkod Tarayıcısını çektim ve bir kütüphane projesine dönüştürdüm ve IntentIntegrator üzerinden barkodları tararken ihtiyacınız olmayan işlevselliğin çoğunu kaldırdım.
Talimatları olan proje şu adreste mevcuttur: https://github.com/embarkmobile/zxing-android-minimal.
Eğer zaten Maven kullanıyorsanız, projenize dahil etmek gerçekten çok kolay. Değilse - kodu CaspNZ tarafından açıklanan yaklaşımı kullanarak projenize kopyalayabilirsiniz.