บล็อกของเรา

ข้ามบาร์โค้ด

การเข้ารหัสบาร์โค้ดบน Android

zxing_zebra_logo
ส่วนใหญ่เวลาที่พนักงานที่ Telaeris เผยแพร่ที่นี่เป็นตัวอย่างชีวิตจริงที่เกี่ยวข้องกับผลิตภัณฑ์ของเรา ซึ่งจะช่วยให้เราสามารถพูดคุยเกี่ยวกับหัวข้อต่างๆมากมายรวมถึงการใช้งานบาร์โค้ดและการใช้ RFID การใช้ระบบรักษาความปลอดภัยหรือความปลอดภัยหรือเคล็ดลับในการดำเนินธุรกิจ แต่หัวใจของสิ่งที่เราทำคือการเกิดขึ้น โซลูชั่นที่เรียบง่ายสำหรับปัญหาที่ยุ่งยาก. รายการบล็อกต่อไปนี้เป็นตัวอย่างของการฝึกงานสองครั้งที่ Telaeris เริ่มสร้างผลิตภัณฑ์มือถือใหม่ฟรีสำหรับการติดตามบาร์โค้ดและแท็ก RFID จากอุปกรณ์เคลื่อนที่ Android หรือ iPhone ของคุณ ระบบเรียกว่า DataLockr และเพิ่งเปิดตัว - ฉันขอแนะนำให้คุณตรวจสอบแอปและระบบ สิ่งที่พวกเขาอธิบายไว้ในบทความนี้คือขั้นตอนแรกของการสร้างแอปพลิเคชันอ่านบาร์โค้ดแบบง่ายๆโดยใช้ไลบรารี Zxing แบบโอเพนซอร์สสำหรับ Android

บล็อกนี้มีไว้สำหรับแฮกเกอร์ที่ต้องการรหัส สนุก!

การใช้ไลซีน Zxing ที่เรียบง่าย
ขณะที่เรากำลังเรียนรู้วิธีใช้ Zxing ห้องสมุดเราเร็ว ๆ นี้พบว่ามันเป็นบิตลำบากพยายามเข้าใจสิ่งที่เกิดขึ้นในห้องสมุดใหญ่นี้ มีหลายบทเรียนออกมี แต่หลายขั้นตอนทั้งสับสนเราหรือถูกล้าสมัย มีบางสิ่งที่ขาดหายไปจากโค้ดหรือสิ่งต่างๆที่แตกต่างกันไปขึ้นอยู่กับไลบรารีหรือสิ่งที่ไม่ชัดเจน เราต้องการที่จะทำให้การกวดวิชาที่จะช่วยให้ทุกคนพยายามที่จะใช้ห้องสมุด Zxing การสแกนที่เรียบง่ายได้รับการเริ่มต้นอย่างรวดเร็วในการใช้มันภายในโปรแกรมของตัวเอง

บทแนะนำนี้ใช้ไลบรารี Zxing ที่ฉีกขาดเพื่อสอนพื้นฐานเกี่ยวกับวิธีติดตั้งไลบรารีเป็นแอปพลิเคชันแบบสแตนด์อโลนและปรับใช้แอปแอนดรอยด์ของคุณเอง เรากำลังใช้ชุดพัฒนา Android ที่ใช้ SDK 19 ห้องสมุด Android 4.4 ห้องสมุดได้รับการแก้ไขให้เป็นเครื่องสแกนบาร์โค้ดโหมดแนวตั้งแทนที่จะเป็นแนวนอนในแนวนอน

คุณสามารถดาวน์โหลดไลบรารี Zxing ฉบับย่อของเราเพื่อใช้และทดสอบได้ที่นี่: CaptureActivity. ซึ่งแตกต่างจากไลบรารี ZXing ที่เผยแพร่ แต่เป็นการดีที่จะทำให้คุณเริ่มต้น

หากคุณไม่มีคราสกับ Android SDK ให้ดาวน์โหลดและติดตั้ง ชุดพัฒนา Android. เปิด Android SDK และติดตั้งส่วนประกอบที่ต้องการ จากนั้นเปิด Eclipse

ขั้นตอนที่ 1 ก่อนอื่นเราจะสร้างโครงการ

ไปที่เมนูด้านบน ไฟล์ -> ใหม่ -> โครงการแอนดรอยด์แอ็พพลิเคชัน. ตั้งชื่อโครงการของคุณ (เราเรียกว่า "Scanner App" ของเรา) คัดลอกการตั้งค่าด้านล่างและคลิกถัดไป 3 ครั้งจนถึงสร้างหน้ากิจกรรม เลือกกิจกรรมว่างแล้วคลิกถัดไปจากนั้นคลิก Finish (เสร็จสิ้น) โฟลเดอร์จะปรากฏที่ด้านซ้ายของหน้าจอตามค่าเริ่มต้น ถ้าไม่ให้คลิกปุ่ม maximize เพื่อเปิดหน้าจอของโครงการใน Eclipse

ข้ามบาร์โค้ด

ขั้นตอนที่ 2 แก้ไขข้อผิดพลาดของชุดรูปแบบ (หากคุณไม่มีใด ๆ ให้ข้ามไปยังขั้นตอน 3)

หากคุณมีข้อผิดพลาดในโฟลเดอร์ค่าของคุณนี่อาจเป็นปัญหาเกี่ยวกับ Eclipse เปิดหน้า style.xml ทั้งหมดและลบแท็กสไตล์และเนื้อหาทั้งหมด ไปที่ AndroidManifest.xml และลบ Android: theme = "@ style / AppTheme" ภายใต้แอพพลิเคชัน

ขั้นตอนที่ 3 ถัดไปคือการนำเข้าไลบรารีสแกนเนอร์

หากคุณยังไม่ได้โปรดดาวน์โหลด zip CaptureActivty ด้านบน ไปที่ ไฟล์ -> นำเข้า -> นำเข้าโค้ด Android ที่มีอยู่ไปใช้ Workspace -> และเรียกค้นแบบเปิด และหาซอร์สโค้ด Zxing ที่คุณดาวน์โหลดมา ตรวจสอบเฉพาะโครงการแรกที่เรียกว่า CaptureActivity เส้นทางไม่ควรมีการสร้าง / อยู่ในนั้น คลิกเสร็จสิ้น. คลิกขวาที่ / CaptureActivity / โฟลเดอร์ในแท็บ Package Explorer และคลิก คุณสมบัติ -> Android และตรวจสอบให้แน่ใจว่าไม่ได้เลือกช่องทำเครื่องหมาย "Is Library" ไว้ คลิกตกลง

ขั้นตอนที่ 4 ขณะนี้เราต้องเชื่อมต่อแอปพลิเคชันกับห้องสมุดสแกนเนอร์แล้ว

คลิกขวาที่โฟลเดอร์แอป Android และคลิกที่ คุณสมบัติ -> Android. คลิกที่ปุ่มเพิ่มและคลิกที่ CaptureActivity ตรวจสอบให้แน่ใจว่าเครื่องหมายถูกสีเขียวปรากฏขึ้นหลังจากที่คุณคลิกถูกบนหน้าจอ Android ด้วยเครื่องสแกนเนอร์ของโครงการ คลิกตกลง

ขั้นตอนที่ 5 ขณะนี้เราสามารถเริ่มต้นใช้งานเครื่องสแกนเนอร์ในแอพพลิเคชันของเรา เริ่มต้นด้วยไฟล์ mainActivity.java

ในโฟลเดอร์แอปพลิเคชันของคุณไปที่ / src / และเปิดไฟล์ mainActivity.java ไฟล์. ด้านล่างเป็นรหัสที่จำเป็น คัดลอกและวางสิ่งที่คุณไม่ได้ โค้ดที่คุณต้องเพิ่มจะเป็นสีแดง หากคุณได้รับข้อผิดพลาดคุณจะต้องนำเข้าบางชั้นเรียน คุณสามารถกด ctrl + shift + O และการนำเข้าที่จำเป็นทั้งหมดจะถูกนำเข้า



package com.example.scannerapp; นำเข้า android.app.Activity; นำเข้า android.content.Intent; นำเข้า android.os.Bundle; นำเข้า android.view.Menu; นำเข้า android.view.View; นำเข้า android.widget.Toast; กิจกรรมหลัก MainActivity ของ Public Class จะขยายกิจกรรม {@ ปกป้องโมฆะที่กำลังสร้างอยู่ (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); @Override boolean สาธารณะ onCreateOptionsMenu (เมนูเมนู) {/ ขยายเมนู; นี้จะเพิ่มรายการลงในแถบการทำงานถ้ามีอยู่ getMenuInflater (). ขยาย (R.menu.main, เมนู); กลับจริง; } p ublic void openScanner (ดูมุมมอง) {Intent intent = new Intent ("com.example.scannerapp.SCAN"); startActivityForResult (เจตนา, 0000); } public void onActivityResult (int requestCode, int resultCode เจตนาเจตนา) {if (requestCode == 0000) {if (resultCode == RESULT_OK) {เนื้อหาสตริง = intent.getStringExtra ("SCAN_RESULT"); Toast.makeText (นี้เนื้อหา 0) .show (); } else if (resultCode == RESULT_CANCELED) {// จัดการยกเลิก}}} } 

มีสองหน้าที่สำคัญที่นี่:

  1. วิธีการ openScanner ทำงานเมื่อกดปุ่มและจะเปิดสแกนเนอร์ขึ้นมา
  2. กระบวนการ onActivityResult ส่งกลับสตริงของบาร์โค้ดที่อ่าน จากจุดนี้คุณสามารถเปิดเจตนาใหม่และส่งผ่านตัวแปรต่างๆได้หากต้องการแสดงหน้าจออื่นหลังจากสแกน

ขั้นตอนที่ 6 ขณะนี้เราจะเปลี่ยนโครงร่างในไฟล์ activity_main.xml

ตอนนี้อยู่ใน / แอป / โฟลเดอร์ไปที่ res folder -> layout -> ไฟล์ 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" เครื่องมือ: บริบท = ". MainActivity "> <ปุ่ม android: id =" @ + id / button0000 "android: layout_width =" wrap_content "android: layout_height =" wrap_content "android: layout_below =" @ + id / textView0000 "android: layout_centerHorizontal =" true "android: layout_marginTop = "1dp" android: text = "สแกน" 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 : android = "1" android: versionName = "1.0"> <ใช้ -sdk android: minSdkVersion = "8" android: targetSdkVersion = "21" /> <! - สิทธิ์ที่จำเป็นโดย ZXING -> <อนุญาตใช้ android : android = "android.permission.CAMERA" /> <android ใช้งานได้: android = "android.permission.INTERNET" /> คุณลักษณะที่จำเป็นโดย ZXING -> <ใช้คุณลักษณะหุ่นยนต์: android = android.permission.php android: "false" /> <ใช้คุณลักษณะหุ่นยนต์: ชื่อ = "android.hardware.telephony" android: required = "false" /> <แอ็พพลิเคชัน Android: allowBackup = "true" android: icon = "@ drawable / ic_launcher" android: android = "@ string / app_name" android: theme = "@ style / AppTheme"> <android กิจกรรม: name = "com.example.scannerapp.Ma "android.intent.category.LAUNCHER" "android.intent.category.LAUNCHER"> <android android.intent.category.LAUNCHER "> <android android.intent.category.LAUNCHER" <android android.intent.category.LAUNCHER /> </ intent-filter> </ activity> <android กิจกรรม: name = "com.telaeris.datalockrScanner.android.CaptureActivity" android: screenOrientation = "รูปภาพ" android: configChanges = "การวางแนว | แป้นพิมพ์ซ่อน" android: theme = " Android: android.intent.category.MAIN "/> <หมวดหมู่ android: name =" android android.permission.READ_EXTERNAL_STORAGE android.permission.ACCESS_FINE_LOCATION android.permission.ACCESS_FINE_LOCATION android.permission.ACCESS_FINE_LOCATION android.permission.ACCESS_COARSE_LOCATION intent.category.LAUNCHER "/> </ intent-filter> <intent-filter> <แอ็คชัน android: name =" com.example.scannerapp.SCAN "/> หมวดหมู่ android: name =" android.intent.category.DEFAULT "/> </ intent-filter> </ activity> </ application> </ manifest>

เรากำลังเพิ่มสิทธิ์ที่ Android ต้องการเพื่อใช้กล้องและรวมถึงกิจกรรมต่างๆในแอปพลิเคชันเพื่อทราบว่าจะเปิดไฟล์ใดเมื่อเราต้องการเปิดสแกนเนอร์ในอุปกรณ์

ขั้นตอนที่ 8 เสร็จเรียบร้อย!

ขณะนี้คุณควรจะสามารถรวบรวมและเรียกใช้แอพพลิเคชันของคุณบนอุปกรณ์ได้ หากมีข้อผิดพลาดของคอมไพเลอร์คุณอาจต้องการทำความสะอาดโครงการและ / หรือรีสตาร์ทคราส


ขอบคุณ
บล็อกนี้เป็นหนี้บุญคุณคนเป็นจำนวนมาก:

  • Alberto Landaverde ซึ่งทำงานกับ Telaeris ฤดูร้อนของ 2012 ซึ่งแก้ไขห้องสมุด Zxing และสร้างห้องสมุดฉบับแรก
  • เคลลี่ลิมผู้ฝึกงาน Telaeris ในปัจจุบันผู้เข้ารับการศึกษาในห้องสมุดนี้และย้ายไปสร้างห้องสมุด DataLockr แอป Android เคลลี่ยังได้เขียนเนื้อหาของบล็อกนี้
  • Jake Pham, ผู้ฝึกงาน Telaeris ในปัจจุบันผู้ที่ผ่านการสอนที่นี่เพื่อให้แน่ใจว่าทุกอย่างทำงานตามที่โฆษณา

คอยติดตามการติดตั้งครั้งต่อไปซึ่งเราจะพูดถึงวิธีการทำห้องสมุด ZXing ในทั้งแนวตั้งและแนวนอน และถ้าคุณมีเวลาลองดูที่ผลิตภัณฑ์ทั้งหมดของความพยายามของพวกเขา - DataLockr

DataLockrLogo
มองเห็น ถูกสแกน แชร์กัน

แสดงความคิดเห็น

*

อัพเดตบล็อก

จดหมายข่าว


พูดคุยกับตัวแทน

ติดต่อเรา

โทรศัพท์: 858-627-9700
โทรสาร: 858-627-9702
-------------------------------
9123 Chesapeake Dr.
ซานดิเอโก 92123
-------------------------------
sales@telaeris.com