سؤال

هذا السؤال لديه بالفعل إجابة هنا:

لقد كنت أبحث عن كيفية إضافة ماسحة الباركود إلى تطبيقي. هل هناك أي أمثلة أو كيف يمكنني القيام بذلك بسهولة؟

هل كانت مفيدة؟

المحلول

يوفر مشروع ZXING تطبيق قارئ الباركود المستقل والذي - من خلال آلية نية Android - يمكن استدعاؤه من قبل التطبيقات الأخرى التي ترغب في دمج مسح الباركود.

أسهل طريقة للقيام بذلك هي استدعاء zxing SCAN Intent من طلبك ، مثله:

public Button.OnClickListener mScan = new Button.OnClickListener() {
    public void onClick(View v) {
        Intent intent = new Intent("com.google.zxing.client.android.SCAN");
        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
        }
    }
}

الضغط على الزر المرتبط بـ mScan سيتم إطلاقه مباشرة على شاشة Scxing Barcode Scanner (أو تعطل إذا لم يتم تثبيت Zxing). بمجرد التعرف على الباركود ، ستحصل على النتيجة في Activity, ، هنا في contents عامل.

لتجنب تحطم الأشياء وتبسيطها لك ، Zxing لديها قدمت فئة فائدة الذي يمكنك دمجه في تطبيقك لجعل تثبيت Zxing أكثر سلاسة ، من خلال إعادة توجيه المستخدم إلى سوق Android إذا لم يتم تثبيته بالفعل.

أخيرًا ، إذا كنت ترغب في دمج مسح الباركود مباشرة في تطبيقك دون الاعتماد على تثبيت تطبيق Zxing المنفصل ، فهو مشروع مفتوح المصدر ويمكنك القيام بذلك! قون


يحرر: قام شخص ما بتحرير هذا الدليل في هذه الإجابة (يبدو غريباً بعض الشيء ، لا يمكنني أن أشير إلى دقتها ، ولست متأكدًا من سبب استخدامه Eclipse في عام 2015):

خطوة بخطوة لإعداد zxing 3.2.1 في Eclipse

  1. قم بتنزيل zxing-master.zip من "https://github.com/zxing/zxing"
  2. unzip zxing-master.zip ، استخدم Eclipse لاستيراد "Android" في Zxing-Master
  3. تنزيل CORE-33.2.1.JAR من "http://repo1.maven.org/maven2/com/google/zxing/core/3.2.1/"
  4. إنشاء مجلد "libs" في "Android" مشروع COR-3.2.1.JAR في مجلد LIBS
  5. انقر على المشروع: اختر "خصائص" -> "جافا بروم البلاد" لتغيير المستوى إلى 1.7. ثم انقر فوق "Android" تغيير "Target Build" إلى Android 4.4.2+ ، لأن استخدام 1.7 يتطلب التجميع باستخدام Android 4.4
  6. إذا كانت "CamerAconFigurationUtils.java" غير موجودة في "Zxing-Master/Android/APP/SRC/MAIN/JAVA/COM/Google/zxing/Client/Android/Camera/". يمكنك نسخه من "Zxing-Master/Android-Core/SRC/Main/Java/Com/Google/Zxing/Client/Android/Camera/" ولصقه في مشروعك.
  7. تنظيف وبناء مشروع. إذا أظهر مشروعك خطأ حول "Switch - Case" ، فيجب عليك تغييره إلى "إذا - آخر".
  8. مكتمل. تنظيف وبناء مشروع. يمكنك النقر فوق "proprties"> "Android"> انقر فوق "المكتبات" لاستخدامها في مشروعك.

نصائح أخرى

واجهت مشكلة في تنفيذ الكود حتى وجدت موقع ويب (لا يمكنني العثور عليه مرة أخرى في الوقت الحالي) أوضح أنك بحاجة إلى تضمين اسم الحزمة باسم intent.putextra.

سيؤدي إلى سحب التطبيق ، لكنه لن يتعرف على أي رموز باركات ، وعندما قمت بتغييره.

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

إلى

intent.putExtra("com.google.zxing.client.android.SCAN.SCAN_MODE", "QR_CODE_MODE");

عملت بشكل رائع. مجرد نصيحة لأي مبرمجين أندرويد المبتدئين.

باستخدام IntentineGrator المقدم هو أفضل. يتيح لك مطالبة المستخدم بتثبيت ماسح الباركود إذا لم يكن لديهم. كما يتيح لك تخصيص الرسائل. يحتفظ ثابت intentIntegrator.request_code قيمة رمز الطلب لـ OnActivityResult للتحقق من ما سبق إذا كان الحظر.

IntentIntegrator intentIntegrator = new IntentIntegrator(this); // where this is activity 
intentIntegrator.initiateScan(IntentIntegrator.ALL_CODE_TYPES); // or QR_CODE_TYPES if you need to scan QR

intentintegrator.java

يتطلب استخدام Zxing بهذه الطريقة أن يقوم المستخدم أيضًا بتثبيت تطبيق Scanner Barcode ، وهو أمر غير مثالي. ما تريده ربما هو تجميع zxing في تطبيقك مباشرة.

أوصي بشدة باستخدام هذه المكتبة: https://github.com/dm77/barcodescanner

يتطلب الأمر كل مشكلات البناء المجنونة التي ستواجهها في محاولة لدمج Xzing أو ZBAR مباشرة. يستخدم تلك المكتبات تحت الأغطية ، ولكن يلفها في واجهة برمجة تطبيقات بسيطة للغاية.

إذا كنت ترغب في تضمين الكود الخاص بك وعدم استخدام المنتظر الذي توصي به مكتبة Zxing ، فيمكنك استخدام بعض هذه المنافذ:

أنا استخدم الأول ، وهو يعمل بشكل مثالي! لديه عينة مشروع لتجربته.

اكتشاف الباركود متاح الآن في Google Play Services. مختبر الكود من عملية الإعداد ، ها هي مستندات API, ، و عينة مشروع.

يمكنك استخدام دليل البدء السريع هذا http://shyyko.wordpress.com/2013/07/30/zxing-with-android-quick-start/ مع مثال بسيط مشروع لبناء تطبيق Android بدون intentIntegrator.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top