2013-05-29 1 views
2

Android 프로젝트에서 Zxing을 통합하고 싶습니다 (초보자입니다).Zxing을 사용하는 Android 바코드 스캐너

나는 방법은 권장하지 않습니다 여기 http://bit.ly/nBszrL 설명한 것을 보았다 및 http://bit.ly/o29Uma

은 PS이 포스트에서 말했듯이 최선의 방법이해야 할 것을 그것은 텐트 통해 : 나는 바코드 스캐너가 설치하지 않으려는 http://bit.ly/16pKMKx

내 테스트 코드 :

내 장치는

나는 내 프로젝트에 필요한 클래스를 포함했다

package com.example.barcodescanner; 

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

public class MainActivity extends Activity { 

    private static final int REQUEST_BARCODE = 0; 

    @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; 
    } 

    // when my button is clicked 
    public void scanBarCode(View view) { 
     Intent intent = new Intent("com.google.zxing.client.android.SCAN"); 
     intent.putExtra("SCAN_MODE", "PRODUCT_MODE"); 

     startActivityForResult(intent, REQUEST_BARCODE); 

     Toast toast = Toast.makeText(this, "Start scanning Barcode", Toast.LENGTH_SHORT); 
     toast.show(); 
    } 

} 

와 난 정말이 방법으로 그것을 할 방법을 이해하지 않습니다 http://bit.ly/18v7K2O (나는 정말 그것을 얻을하지 않습니다 그리고 내가 사용하고자하는 기능)

당신이 어떤 생각에 대한이 있나요 그것을하는 방법?

감사합니다.

답변

4

안드로이드 시스템은 사람이 특정 일을 잘 수행하고 다른 개발자가 필요할 때 사용할 수 있도록 만들어졌습니다. 바코드 스캐닝은 좋은 예입니다. ZXing은 훌륭한 스캐너를 만들고 다른 앱이 인 텐트를 통해 사용할 수 있도록합니다. 기본적으로 OS에 바코드를 스캔 할 것을 알리고 ZXing은 "예, 할 수 있습니다!"라고 말합니다. 그들은 바코드를 스캔하고 당신에게 정보를 반환합니다. 이런 식으로하는 것이 가장 좋은 점은 자신의 물건을 업데이트 할 때 걱정할 필요가 없다는 것입니다. 사용자는 업데이트되었음을 ​​통보 받아 최신 최신 기능을 사용할 수 있습니다. 한 가지 잠재적 인 단점은 사용자가 휴대 전화에 다른 앱을 가지고 있지만 그 사실을 드로우 백으로 보지 못한다는 것입니다. 이런 식으로하려면 당신은 정말에만 연결된 두 개의 파일이 필요하고 당신은 스캔 시작하려면 코드에서이 위치 :

IntentIntegrator integrator = new IntentIntegrator(yourActivity); 
integrator.initiateScan(); 

을 그리고이 비트는 바코드 스캐너에서 그 해답을 쉽게 얻을 수 있습니다 :

public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent); 
    if (scanResult != null) { 
     // handle scan result 
    } 
    // else continue with any other code you need in the method 
    ... 
} 

유일한 다른 옵션은 바코드 스캐너의 모든 코드를 풀고 프로젝트에 그 코드를 일괄 적으로 적용한 다음 모든 작동 방식과 앱에 가져올 위치를 파악하는 것입니다. 그런 다음 ZXing이 업데이트 할 때마다 다시해야합니다. 그것은 엉망이다!

+1

감사합니다 :) 나는 당신이 말했던 것처럼 작동하지만, 내 앱이 처음으로 BarcodeScanner 홈 액티비티를 실행할 때를 보여 주며 바코드 리더에 도달하기 위해 버튼을 클릭해야합니다. 프리젠 테이션에서 카메라로 스캔 방향을 변경하고 싶습니다. 나는 이것을 찾고 있었고 바코드 스캐너의 소스 코드를 수정해야한다는 것을 알았습니다. 바코드 스캐너 만 가지고 싶습니다. 작은 블록. 이 방법으로 할 수 있습니까? 감사합니다. – Copernic