* 안드로이드에서 바코드 스캐너 zxing library. 좋음
* 나의 목표
  - portrait만 지원,
  - 스캐너 화면에 디자인 레이아웃 xml 이 필요함
  - Android Studio 1.5.1


* build.gradle 의 dependencies 항목에 아래의 2라인 추가
  compile 'com.journeyapps:zxing-android-embedded:3.0.3@aar'
  compile 'com.google.zxing:core:3.2.1'

* CaptureActivity 를 상속받는 activity를 만든다
  CaptureActivity를 상속받으면 자동으로 바코드스캐너가 실행된다
  public class barcode_scan_activity extends CaptureActivity

* barcode_scan_activity의 onCreate 에서 setContentView를 하면 안된다.
  디자인을 입히려면, view를 만들어서 addContentView 한다.
@Override protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);

    // 이거하면, 카메라화면이 안보임
    //setContentView(R.layout.barcode_scan_activity);

    // 상단 타이틀 뷰
    LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
    barcode_scan_title_view title_view = new barcode_scan_title_view(this);
    this.addContentView(title_view, layoutParams);
}

* barcode_scan_activity 를 호출하는 activity(caller_activity라고 하자)에서 아래처럼 호출한다.
IntentIntegrator zxingII = new IntentIntegrator(this);
zxingII.setCaptureActivity(barcode_scan_activity.class);
zxingII.setOrientationLocked(true);
zxingII.initiateScan();


* 바코드스캔결과는 caller_activity에서 아래처럼 받는다.
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
    super.onActivityResult(requestCode, resultCode, data);

    // QR코드/바코드를 스캔한 결과
    IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);

    // result.getFormatName() : 바코드 종류
    // result.getContents() : 바코드 값
}


* 참고 사이트 : https://github.com/journeyapps/zxing-android-embedded



반응형

'Android 초보' 카테고리의 다른 글

HTTPS with Client Certificates on Android  (0) 2016.01.26
LocalBroadcastManager  (0) 2015.12.21
android. 구글맵  (0) 2015.08.11
leftmargin 애니메이션  (0) 2015.01.06
안드로이드, 배경화면 이미지. 버그 수정  (0) 2014.12.16
Posted by 돌비
,