NEW! XPressEntry HealthCheck Workplace & COVID-19 Screening. اضغط هنا لتعلم المزيد.

المدوَّنة

معبر الباركود

Barcoding على الروبوت

zxing_zebra_logo
في معظم الأوقات عندما ينشر الموظفون في Telaeris هنا ، يكون ذلك لأمثلة من الحياة الواقعية تتعلق بمنتجاتنا. يتيح لنا ذلك مناقشة مجال واسع من الموضوعات ، بما في ذلك استخدام الرموز الشريطية و RFID ، أو تنفيذ نظام الأمان أو السلامة أو نصائح حول إدارة الأعمال. ولكن في صميم ما نفعله هو أن نبتكر حلول أنيقة لمشاكل صعبة. إدخالات المدونة القليلة التالية هي أمثلة لكيفية بدء اثنين من المتدربين في Telaeris في إنشاء منتج محمول جديد مجاني لتتبع الرموز الشريطية وعلامات RFID من جهازك المحمول الذي يعمل بنظام Android أو iPhone. النظام يسمى DataLockr وقد تم إطلاقه للتو - أوصي بشدة بمراجعة التطبيق والنظام. ما يصفونه في هذه المقالة هو خطواتهم الأولى حول كيفية إنشاء تطبيق بسيط لقراءة الرمز الشريطي باستخدام مكتبة Zxing مفتوحة المصدر لنظام Android.

هذه المدونة مخصصة للمتسللين الذين يحبون البرمجة. استمتع!

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

يستخدم هذا البرنامج التعليمي نسخة ممزقة من مكتبة Zxing لتعليم أساسيات كيفية تطبيق المكتبة في تطبيق مستقل ونشر تطبيق Android الأصلي الخاص بك. نحن نستخدم مجموعة تطوير Android التي تدير SDK 19 ، مكتبة Android 4.4. تم تعديل المكتبة ليكون الماسح الضوئي الباركود وضع عمودي بدلا من الاتجاه الأفقي الافتراضي.

يمكنك تنزيل نسخة مبسطة من مكتبة Zxing لاستخدامها واختبارها هنا: CaptureActivity. هذا يختلف عن مكتبة ZXing التي تم إصدارها ، ولكن من الجيد أن تبدأ.

إذا لم يكن لديك Eclipse مع Android SDK ، فقم بتنزيل وتثبيت مجموعة تطوير Android. افتح Android SDK وقم بتثبيت المكونات المطلوبة. بعد ذلك ، افتح Eclipse.

الخطوة 1. أولا سنقوم بإنشاء المشروع.

اذهب إلى القائمة العلوية ملف -> جديد -> مشروع تطبيق Android. قم بتسمية مشروعك (أطلقنا على مشروعنا "تطبيق الماسح"). انسخ الإعدادات أدناه وانقر فوق 3 مرات التالية حتى يتم إنشاء صفحة النشاط. اختر نشاط فارغ وانقر فوق التالي ثم إنهاء. سيظهر المجلد على الجانب الأيسر من الشاشة افتراضيًا. إذا لم يكن كذلك ، فانقر فوق زر التكبير لفتح شاشة المشروع في Eclipse.

معبر الباركود

 

الخطوة 2. إصلاح أخطاء السمة (إذا لم يكن لديك أي منها ، فانتقل إلى الخطوة 3)

إذا كنت تواجه أخطاء في مجلدات القيم الخاصة بك ، فقد تكون هذه مشكلة في Eclipse. افتح كل صفحات style.xml واحذف كل علامات النمط ومحتوياتها. انتقل أيضًا إلى AndroidManifest.xml واحذف android: theme = ”@ style / AppTheme” ضمن التطبيق.

الخطوة 3. التالي هو استيراد مكتبة الماسحة الضوئية.

إذا لم تقم بذلك بعد ، فالرجاء تنزيل الرمز البريدي CaptureActivty أعلاه. اذهب إلى ملف -> استيراد -> استيراد كود Android الحالي إلى مساحة العمل -> وافتح التصفح وابحث عن كود مصدر Zxing الذي قمت بتنزيله. تحقق فقط من المشروع الأول يسمى CaptureActivity. يجب ألا يحتوي المسار على بنية / في ذلك. انقر فوق الانتهاء. انقر بزر الماوس الأيمن / CaptureActivity / مجلد في علامة التبويب مستكشف حزمة وانقر فوق الخصائص -> Android وتأكد من تحديد خانة الاختيار "Is Library". انقر فوق موافق.

الخطوة 4. يجب علينا الآن ربط التطبيق لدينا مع مكتبة الماسح الضوئي.

انقر بزر الماوس الأيمن على مجلد تطبيق Android ، ثم انقر على الخصائص -> Android. انقر على زر الإضافة ، وانقر على CaptureActivity. تأكد من ظهور علامة اختيار خضراء بعد النقر فوق "موافق" على شاشة Android باستخدام برنامج Scanner. انقر فوق موافق.

الخطوة 5. يمكننا الآن بدء تنفيذ الماسح الضوئي في طلبنا. ابدأ بالملف mainActivity.java.

في مجلد تطبيقك ، انتقل إلى / SRC / المجلد وفتح الخاص بك mainActivity.java ملف. فيما يلي التعليمات البرمجية المطلوبة. نسخ ولصق ما لم يكن لديك. سيكون الرمز الذي ستحتاج إلى إضافته بنص أحمر. إذا كنت تحصل على أخطاء ، فستحتاج إلى استيراد فئات معينة. يمكنك فقط الضغط على ctrl + shift + O ، وسيتم استيراد كل الواردات اللازمة.



package com.example.scannerapp;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends Activity {

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
   }

   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
      // Inflate the menu; this adds items to the action bar if it is present.
      getMenuInflater().inflate(R.menu.main, menu);
      return true;
   }
   public void openScanner(View view){
      Intent intent = new Intent("com.example.scannerapp.SCAN");
      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");
            Toast.makeText(this,contents,3000).show();
         } else if (resultCode == RESULT_CANCELED) {
            // Handle cancel
         }
      }
   }
} 

هناك وظيفتان رئيسيتان هنا:

  1. يتم تشغيل الأسلوب openScanner عند الضغط على زر ، ثم يفتح الماسح الضوئي لاحقًا.
  2. إرجاع الأسلوب onActivityResult سلسلة قراءة الباركود. من هنا ، يمكنك فتح نية جديدة وتمرير متغيرات إذا كنت ترغب في عرض شاشة أخرى بعد الفحص.

الخطوة 6.We سيتم الآن تغيير التخطيط في ملف activity_main.xml.

الآن في حياتك / التطبيق / مجلد، انتقل إلى مجلد res -> التخطيط -> ملف activity_main.xml. يجب أن تبدو كما يلي. أضف الرمز الأحمر التالي:


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:paddingBottom="@dimen/activity_vertical_margin"
     android:paddingLeft="@dimen/activity_horizontal_margin"
     android:paddingRight="@dimen/activity_horizontal_margin"
     android:paddingTop="@dimen/activity_vertical_margin"
     tools:context=".MainActivity" >

    <Button
         android:id="@+id/button1"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_below="@+id/textView1"
         android:layout_centerHorizontal="true"
         android:layout_marginTop="159dp"
         android:text="Scan" 
         android:onClick="openScanner"/>

</RelativeLayout>

هذا يضيف زر ، وعندما تضغط ، سيتم تشغيل طريقة openScanner من mainActivity.java ملف. قد تحتاج أيضا إلى اختيار موضوع. اخترت Theme.holo.

الخطوة 7. التعديل الأخير هو تحرير ملف androidManifest.xml.

انتقل إلى AndroidManifest.xml على ملف تحت دليل المشروع. يجب أن يظهر الرمز كما يلي ، ثم نسخ الرمز الأحمر مرة أخرى



<?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="com.example.scannerapp"
 android:versionCode="1"
 android:versionName="1.0" >

<uses-sdk
 android:minSdkVersion="8"
 android:targetSdkVersion="21" />

 <!-- PERMISSIONS REQUIRED BY ZXING -->
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <!-- FEATURES REQUIRED BY ZXING -->
    <uses-feature android:name="android.hardware.camera" android:required="true" />
    <uses-feature android:name="android.hardware.touchscreen"  android:required="false" />
    <uses-feature android:name="android.hardware.telephony"  android:required="false" />

<application
     android:allowBackup="true"
     android:icon="@drawable/ic_launcher"
     android:label="@string/app_name"
     android:theme="@style/AppTheme" >
     <activity
        android:name="com.example.scannerapp.MainActivity"
        android:label="@string/app_name" >
         <intent-filter>
             <action android:name="android.intent.action.MAIN" />
             <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
    </activity>
    <activity android:name="com.telaeris.datalockrScanner.android.CaptureActivity"
        android:screenOrientation="portrait"
        android:configChanges="orientation|keyboardHidden"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
        android:windowSoftInputMode="stateAlwaysHidden">
        <intent-filter>
         <action android:name="android.intent.category.MAIN"/>
         <category android:name="android.intent.category.LAUNCHER"/>
       </intent-filter>

       <intent-filter>
         <action android:name="com.example.scannerapp.SCAN"/>
         <category android:name="android.intent.category.DEFAULT"/>
       </intent-filter>
    </activity>

</application>

</manifest>

نحن نضيف أذونات يتطلبها الروبوت لاستخدام الكاميرا وتتضمن أنشطة للتطبيق لمعرفة الملفات التي يجب فتحها عندما نريد فتح الماسح الضوئي على الجهاز.

الخطوة 8. كله تمام!

يجب أن تكون الآن قادرًا على ترجمة التطبيق وتشغيله على جهاز. إذا كانت هناك أية أخطاء في برنامج التحويل البرمجي ، فقد ترغب في تنظيف المشروع و / أو إعادة تشغيل الكسوف.

 
شكرا
تدين هذه المدونة بجزيل الشكر للعديد من الأشخاص:

  • ألبرتو لاندافيردي ، الذي تدرب مع Telaeris الصيف من 2012 ، الذي قام بتعديل مكتبة Zxing وبنى المكتبة المبسطة الأولية
  • كيلي ليم ، المتدرب الحالي Telaeris ، الذي أخذ هذه المكتبة وانتقل إلى أبعد من ذلك لبناء DataLockr الروبوت التطبيق. كما كتب كيلي محتوى هذه المدونة.
  • جيك فام ، المتدرب الحالي Telaeris ، الذي ذهب من خلال البرنامج التعليمي هنا للتأكد من أن كل شيء يعمل كما هو معلن.

ترقبوا الحلقة التالية حيث نناقش كيفية إجراء مسح مكتبة ZXing في الوضعين الرأسي والأفقي. وإذا كان لديك الوقت ، ألق نظرة على نتاج كل جهودهم - DataLockr.

DataLockrLogo
يرى. كن مسحها ضوئيا. أن تكون مشتركة.

اترك تعليق

*

اشترك في القائمة البريدية

احصل على آخر التحديثات المرسلة مباشرة إلى صندوق الوارد الخاص بك