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
}
}
하나의 버튼을하고, 바코드를 스캔 클릭은이 바코드의 원시 내용을 반환합니다.
[documentation] (http://zxing.github.io/zxing/)의 어느 부분이 당신에게 어려운 것으로 판명 되었습니까? 읽어 보셨습니까? – 323go