وبلاگ ما

گذر بارکد

بارکد در آندروید

zxing_zebra_logo
Most of the time when employees at Telaeris publish here, it is for real life examples related to our products. This allows us to discuss a wide area of topics, including barcodes and RFID usage, security or safety system implementation or tips on running a business. But at the heart of what we do is to come up with راه حل های شسته و رفته برای مشکلات دشوار است. The next few blog entries are examples of how two interns at Telaeris started to create a free new mobile product for tracking barcodes and RFID tags from your Android or iPhone mobile device. The system is called DataLockr and has just been launched – I highly recommend you check out the app and system. What they describe in this article are their first steps of how to build a simple barcode reading app using the open source Zxing library for Android.

This blog is for the hackers out there that like to code. Enjoy!

پیاده سازی یک کتابخانه ساده Zxing
در حالی که ما در جریان یادگیری نحوه استفاده از آن بودیم Zxing کتابخانه، ما به زودی متوجه شدیم که این تلاش کمی برای درک آنچه در این کتابخانه عظیم بود، کمی مشکل بود. در آنجا بسیاری از آموزشها وجود داشت، اما بسیاری از مراحل یا ما را گمراه کرد یا از بین رفت. چیزهایی که از کد حذف شده بود یا چیزهایی که متفاوت بود بر اساس نسخه کتابخانه بود یا چیزی کاملا مشخص نشده بود. ما می خواستیم یک آموزش ایجاد کنیم که به هر کسی که تلاش می کند یک کتابخانه اسکن ساده Zxing را اجرا کند، به سرعت شروع به استفاده از آن در برنامه خود می کند.

این آموزش از نسخه پاره شده کتابخانه Zxing برای تدریس اصول نحوه پیاده سازی کتابخانه به یک برنامه مستقل و استفاده از برنامه اصلی اندروید خود استفاده می کند. ما از کیت توسعه اندرویدی SDK 19، اندیشه 4.4 library استفاده می کنیم. کتابخانه اصلاح شده است به عنوان یک اسکنر بارکد حالت عمودی و نه به طور پیش فرض جهت افقی است.

شما می توانید نسخه ساده ما از کتابخانه Zxing را برای استفاده و آزمایش اینجا دانلود کنید: CaptureActivity. این متفاوت از کتابخانه ZXing منتشر شده است، اما خوب است که شما شروع به کار کنید.

اگر Eclipse را با آندروید SDK نداشته باشید، دانلود و نصب کنید کیت توسعه اندروید. Android SDK را باز کنید و اجزای مورد نیاز را نصب کنید. بعد، Eclipse باز شود

مرحله 1 ابتدا پروژه را ایجاد خواهیم کرد.

به منوی بالا بروید فایل -> جدید -> برنامه برنامه اندروید. نام پروژه خود را (ما به نام "اسکنر برنامه" ما). تنظیمات زیر را کپی کنید و بعد 3 بعدی را تا صفحه فعالیت ایجاد کنید. فعال سازی خالی را انتخاب کنید و بعد روی Finish کلیک کنید. پوشه به طور پیش فرض در سمت چپ صفحه نمایش داده می شود. اگر نه، روی دکمه حداکثر کردن کلیک کنید تا صفحه نمایش پروژه در Eclipse باز شود.

گذر بارکد

مرحله 2 رفع اشتباهات تم (اگر هیچ کدام ندارید، به مرحله 3 بروید)

If you are having errors in your values folders, this may be an Eclipse issue. Open all style.xml pages and delete all style tags and its contents. Also go to your AndroidManifest.xml and delete the android:theme=”@style/AppTheme” under application.

مرحله 3 بعدا کتابخانه اسکنر را وارد کنید.

اگر هنوز رتبهدهی نشده است، لطفا Zip CaptureActivty را در بالا دانلود کنید. رفتن به فایل -> وارد کردن -> وارد کردن کد Android موجود در فضای کاری -> و باز کردن فهرست و کد منبع Zxing که دانلود کرده اید پیدا کنید. فقط اولین پروژه را به نام چک کنید CaptureActivity مسیر نباید شامل ساخت / در آن باشد. Click finish. راست کلیک بر روی / CaptureActivity / پوشه در تب بسته اکسپلورر و کلیک کنید خواص -> آندروید and make sure the “Is Library” check box checked. Click ok.

مرحله 4 ما اکنون باید برنامه خود را با کتابخانه اسکنر متصل کنیم.

راست کلیک بر روی پوشه نرم افزار آندروید خود را و سپس کلیک کنید خواص -> آندروید. بر روی دکمه افزودن کلیک کنید و روی CaptureActivity کلیک کنید. اطمینان حاصل کنید که علامت چک سبز پس از کلیک روی Ok روی صفحه نمایش Android با اسکنر پروژه ظاهر می شود. ok را کلیک کنید

گام 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 تغییر می دهد.

Now in your / app / پوشه، به پوشه res -> layout -> file 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 همه انجام شده است!

اکنون باید بتوانید برنامه خود را در یک دستگاه کامپایل و اجرا کنید. اگر خطاهای کامپایلر وجود داشته باشد، ممکن است بخواهید پروژه را تمیز کنید و / یا دوباره تکرار کنید.


متشکرم
این وبلاگ به لطف بزرگی از بسیاری از افراد بزرگ تشکر می کند:

  • آلبرتو لاندردر، که در تابستان Xelaxer از 2012 تعطیل شد، کتابخانه Zxing را تغییر داد و کتابخانه ساده را ساده ساخت
  • Kelly Lim, current Telaeris intern, who took this library and moved beyond it to build the DataLockr برنامه آندروید کلی همچنین محتوای این وبلاگ را نوشته است.
  • جیک فام، کارآموز تلئرز در حال حاضر، که در اینجا آموزش داده شد تا اطمینان حاصل کند که همه چیز به عنوان تبلیغ تبلیغ شده است.

Stay tuned for the next installment where we discuss how to make the ZXing library scan in both portrait and landscape modes. And if you have time, take a look at the product of all of their effort – DataLockr

DataLockrLogo
دیده می شود. اسکن شده به اشتراک گذاشته شود

ارسال نظر

*

به روز رسانی وبلاگ

خبرنامه


با نماینده صحبت کنید

تماس با ما

تلفن: 858-627-9700
فکس: 858-627-9702
-------------------------------
9123 Chesapeake دکتر
سن دیگو، CA 92123
-------------------------------
sales@telaeris.com