블로그

바코드 크로싱

Android에서 바코드 처리

zxing_zebra_logo
Telaeris의 직원이 여기에 게시하는 대부분의 시간은 제품과 관련된 실제 사례입니다. 이를 통해 바코드 및 RFID 사용, 보안 또는 안전 시스템 구현 또는 비즈니스 실행에 대한 팁을 비롯하여 광범위한 주제에 대해 논의 할 수 있습니다. 하지만 우리가하는 일의 핵심은 까다로운 문제에 대한 깔끔한 해결책. 다음 몇 가지 블로그 항목은 Telaeris의 두 인턴이 Android 또는 iPhone 모바일 장치에서 바코드 및 RFID 태그를 추적 할 수있는 새로운 무료 모바일 제품을 만드는 방법을 보여주는 예입니다. 시스템이 호출됩니다. DataLockr 그리고 방금 시작되었습니다 - 나는 당신이 앱과 시스템을 체크 아웃 할 것을 강력히 권합니다. 이 기사에서 설명하는 것은 Android 용 오픈 소스 Zxing 라이브러리를 사용하여 간단한 바코드 읽기 앱을 작성하는 첫 단계입니다.

이 블로그는 코드 작성을 좋아하는 해커 용입니다. 즐겨!

단순화 된 Zxing 라이브러리 구현
우리가 사용하는 방법을 배우는 과정을 거치면서 Zxing 우리는 곧이 거대한 도서관에서 무슨 일이 벌어지고 있는지를 이해하려고 애쓰는 것이 다소 번거롭다는 것을 알게되었습니다. 거기에 많은 자습서가 있었지만 많은 단계가 우리를 혼란스럽게 만들거나 구식이었습니다. 코드에서 누락 된 것이 있거나 라이브러리 버전 또는 무언가에 따라 다른 내용이 완전히 밝혀지지 않았습니다. 우리는 간단한 Zxing 스캐닝 라이브러리를 구현하려는 사람들이 자신의 응용 프로그램에서이를 사용하는 데 도움이되는 자습서를 만들고 싶었습니다.

이 튜토리얼에서는 Zxing 라이브러리의 해체 된 버전을 사용하여 라이브러리를 독립 실행 형 앱으로 구현하고 고유 한 Android 앱을 배포하는 방법에 대한 기본 사항을 설명합니다. 우리는 SDK 19, android 4.4 라이브러리를 실행하는 Android Development Kit을 사용하고 있습니다. 라이브러리가 기본 수평 방향이 아닌 세로 모드 바코드 스캐너로 수정되었습니다.

Zxing 라이브러리의 간단한 버전을 다운로드하여 여기에서 사용 및 테스트 할 수 있습니다. CaptureActivity. 이것은 출시 된 ZXing 라이브러리와는 다르지만 시작하기에 좋습니다.

Android SDK가있는 Eclipse가없는 경우 Android 개발 키트. Android SDK를 열고 필요한 구성 요소를 설치하십시오. 그런 다음 Eclipse를 엽니 다.

1 단계. 먼저 프로젝트를 만듭니다.

톱 메뉴로 이동 파일 -> 새 -> Android Application Project. 프로젝트의 이름을 지정합니다 (우리는 "스캐너 응용 프로그램"이라고 부름). 아래 설정을 복사하고 활동 생성 페이지가 나타날 때까지 다음 3 번을 클릭하십시오. 빈 활동을 선택하고 다음을 클릭 한 다음 마침을 클릭하십시오. 폴더는 기본적으로 화면 왼쪽에 나타납니다. 그렇지 않은 경우 최대화 버튼을 클릭하여 Eclipse에서 프로젝트 화면을 엽니 다.

바코드 크로싱

2 단계. 테마 오류 수정 (없으면 3 단계로 건너 뜁니다)

값 폴더에 오류가있는 경우 Eclipse 문제 일 수 있습니다. 모든 style.xml 페이지를 열고 모든 스타일 태그와 그 내용을 삭제하십시오. 또한 AndroidManifest.xml로 이동하여 응용 프로그램 아래에서 android : theme = "@ style / AppTheme"을 삭제하십시오.

3 단계. 다음은 스캐너 라이브러리를 가져 오는 것입니다.

아직 다운로드하지 않은 경우 위의 CaptureActivty zip을 다운로드하십시오. 이동 파일 -> 가져 오기 -> 기존 Android 코드를 작업 영역으로 가져 오기 -> 열고 탐색 다운로드 한 Zxing 소스 코드를 찾으십시오. 호출 된 첫 번째 프로젝트 만 확인하십시오. CaptureActivity. 경로에 build / in이 없어야합니다. 클릭 끝내기. 마우스 오른쪽 버튼을 클릭 / CaptureActivity / 패키지 탐색기 탭의 폴더를 클릭하십시오. 속성 -> Android "라이브러리 여부"확인란을 선택하십시오. 확인을 클릭하십시오.

4 단계. 이제 우리의 앱을 스캐너 라이브러리에 연결해야합니다.

Android 앱 폴더를 마우스 오른쪽 버튼으로 클릭 한 다음을 클릭하십시오. 속성 -> Android. 추가 버튼을 클릭하고 CaptureActivity를 클릭하십시오. 프로젝트 스캐너로 Android 화면에서 확인을 클릭하면 녹색 확인 표시가 나타나는지 확인하십시오. 확인을 클릭하십시오.

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; 가져 오기 android.widget.Toast; 공용 클래스 MainActivity extends Activity {@Override protected void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); } @Override public boolean onCreateOptionsMenu (메뉴 메뉴) {// 메뉴를 팽창시킵니다. 작업 표시 줄이 있으면 항목을 작업 표시 줄에 추가합니다. getMenuInflater (). inflate (R menu.main, menu); 참을 돌려라. } P는 ublic의 무효 openScanner (보기보기) {의도 의도 = 새로운 의도 ( "com.example.scannerapp.SCAN"); startActivityForResult (인 텐트, 0000); } public void onActivityResult (int requestCode, int resultCode, intent intent) {if (resultCode == RESULT_OK) {String contents = intent.getStringExtra ( "SCAN_RESULT"); Toast.makeText (this, contents, 0000) .show (); } else if (resultCode == RESULT_CANCELED) {// 핸들 취소}}} } 

여기에는 두 가지 주요 기능이 있습니다.

  1. openScanner 메소드는 버튼을 누를 때 실행되며 스캐너가 열립니다.
  2. onActivityResult 메서드는 읽은 바코드의 문자열을 반환합니다. 여기에서 스캔 후 다른 화면을 표시하려는 경우 새로운 의도를 열고 변수를 전달할 수 있습니다.

6 단계. 이제 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 "> <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 파일. 테마를 선택해야 할 수도 있습니다. 나는 테마를 선택했다. 홀로.

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 <1> android : targetSdkVersion = "1.0"/> <! - ZXING에 의해 요구되는 허가 -> <uses-permission android name = "android.permission.CAMERA"/> <uses-permission android : name = "android.permission.INTERNET"/> <uses-permission android : name = "android.permission.WRITE_EXTERNAL_STORAGE"/> android.hardware.camera android : required = "true"/> <uses-feature android : name = "android.hardware.touchscreen"android : required = "true"/> "false"/> < use -feature android : name = "android.hardware.telephony"android : required = "false"/> <android : allowBackup = "true"android : icon = "@ 드로어 블 / ic_launcher"android : label = "@ string / app_name"android : theme = "@ style / AppTheme"> <activity android : name = "com.example.scannerapp.Ma inActivity "android : intent : name ="android.intent.action.MAIN "/> <android : name ="android.intent.category.LAUNCHER " /> </ intent-filter> </ activity> <android : name = "com.telaeris.datalockrScanner.android.CaptureActivity"android : screenOrientation = "portrait"android : configChanges = "오리엔테이션 | keyboardHidden"android : theme = " @ android : style / Theme.NoTitleBar.Fullscreen "android : windowSoftInputMode ="stateAlwaysHidden "> <intent-filter> <action android : name ="android.intent.category.MAIN "/> <category android : name ="안드로이드. 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 단계. 모두 완료되었습니다!

이제 장치에서 응용 프로그램을 컴파일하고 실행할 수 있어야합니다. 컴파일러 오류가있는 경우 프로젝트를 정리하거나 Eclipse를 다시 시작할 수 있습니다.


고마워요
이 블로그는 많은 분들께 감사드립니다.

  • Telaeris 여름 2012에서 인턴으로 일한 Alberto Landaverde는 Zxing 라이브러리를 수정하고 초기 단순화 된 라이브러리를 구축했습니다.
  • 현재 Telaeris 인턴 인 Kelly Lim이이 도서관을 인수하여이를 넘어서서 DataLockr Android 앱 Kelly는이 블로그의 내용도 썼습니다.
  • 현재 Telaeris 인턴 인 Jake Pham은이 튜토리얼을 통해 모든 것이 광고 된대로 작동하는지 확인했습니다.

다음 기사에서는 ZXing 라이브러리를 세로 모드와 가로 모드로 스캔하는 방법에 대해 설명합니다. 그리고 시간이 있다면, 그들의 모든 노력의 산물을 살펴보십시오. DataLockr.

DataLockrLogo
보았다. 스캔하십시오. 공유하십시오.

코멘트를 남겨주세요

*

블로그 업데이트

뉴스 레터


대표자에게 이야기하다

문의하기

전화 번호 : 858-627-9700
팩스 : 858-627-9702
-------------------------------
9123 체사 피크 박사
샌디에고, CA 92123
-------------------------------
sales@telaeris.com