2014-12-19 2 views
1

안녕하세요, qr 코드를 스캔하기 위해 최소한의 Android 라이브러리 프로젝트를 가져 오는 방법을 알고 있지만 QR 코드를 스캔 한 후에 QR 코드가 얻는 결과 (예 : URL)를 얻고 싶습니다.하지만 i 정말 결과를 검색하는 방법을 모릅니다. 그래서 내가 당신의 도움을 요청하는 것입니다.Zxing scanner Android Studio

IntentIntegrator integrator = new IntentIntegrator(this); 
integrator.setCaptureLayout(R.layout.custom_layout); 
integrator.initiateScan(); 

덕분에 내가 웹보기

wb = (WebView)findViewById(R.id.webView2); 
     wb.loadUrl(re); 
+0

[documentation] (http://zxing.github.io/zxing/)의 어느 부분이 당신에게 어려운 것으로 판명 되었습니까? 읽어 보셨습니까? – 323go

답변

24

First 위해 이런 짓을 미리 에 : 나는 스캐너를 시작하려면이를 사용 https://github.com/embarkmobile/zxing-android-minimal#custom-layout

:이 사용하려고 해요

액티비티는 Activity.onActivityResult(int, int, Intent) 메소드를 구현해야하며 다음과 같은 코드 행을 포함해야합니다.

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 
    ... 
} 

여기서 스캔 결과를 처리 할 곳입니다.

Second

바로 스캔 과정을 시작하는 곳의 사용자 동작에 응답이를 호출

initiateScan()는 사용자가 응용 프로그램을 다운로드하라는 메시지가 경우 null이 아닌 인에 AlertDialog를 반환
IntentIntegrator integrator = new IntentIntegrator(yourActivity); 
integrator.initiateScan(); 

하는 것으로. 이렇게하면 호출하는 앱이 잠재적으로 대화 상자를 관리 할 수 ​​있습니다. 특히 앱이 Activity.onPause() 메소드에서 여전히 활성화되어있는 경우 대화 상자를 닫는 것이 이상적입니다.

당신은이 다운로드 프롬프트 대화 상자의 제목을 사용자 정의 할 수 setTitle(String)을 사용할 수 있습니다 (또는 문자열 리소스 ID로 제목을 설정하는 setTitleByID (int)를 사용합니다.) 마찬가지로, 프롬프트 메시지, 그리고 예/아니오 버튼 레이블이 변경 될 수있다 .

Finally을 사용하면 addExtra(String, Object)을 사용하여 스캐너를 호출하는 데 사용 된 인 텐트에 매개 변수를 추가 할 수 있습니다. 이 간단한 API로 직접 노출되지 않는 추가 옵션을 설정하는 데 사용할 수 있습니다.

기본적으로이 기능은이 의도에 올바르게 응답하는 것으로 알려진 응용 프로그램 만 허용합니다. 응답 할 수있는 앱은 setTargetApplications (List)를 사용하여 설정할 수 있습니다. 예를 들어 TARGET_BARCODE_SCANNER_ONLY으로 설정하면 바코드 스캐너 앱 자체 만 타겟팅 할 수 있습니다.

자세한 내용은 here을 참조하십시오.

샘플 코드 : 당신의 XML의

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.Button; 

import com.google.zxing.integration.android.IntentIntegrator; 
import com.google.zxing.integration.android.IntentResult; 

public class MainActivity extends Activity { 

    private Button mButton; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     // Scanner 

     mButton = (Button) findViewById(R.id.assistant_button); 
     mButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       IntentIntegrator integrator = new IntentIntegrator(MainActivity.this); 
       integrator.initiateScan(); 
      } 
     }); 

    } 

    public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
     IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent); 
     if (scanResult != null) { 
      String re = scanResult.getContents(); 
      Log.d("code", re); 
     } 
     // else continue with any other code you need in the method 

    } 
} 

하나의 버튼을하고, 바코드를 스캔 클릭은이 바코드의 원시 내용을 반환합니다.

+1

이제 모든 것이 작동하고 있습니다. 결과를 얻고 qr 코드에 있던 URL을 시작해야합니다. – BtAndro

+0

위대한 웹보기로 활동을 시작하고 URL을로드하십시오. – bjiang

+0

네, 결과는 URL을 내게 준 모든 것을하지만 난 그냥 URL을 싶어요 – BtAndro

관련 문제