Android QR 코드 스 캔 및 QR 코드 생 성 기능
통합 절차
참조 데모
1.demo 는 다음 과 같이 보 여 줍 니 다.
1.1 demo 홈 페이지
1.2 스캐닝 인터페이스
수요 에 따라 수정 할 수 있 습 니 다.제 실제 프로젝트 의 화면 캡 처 는 다음 과 같 습 니 다.
1.3 QR 코드 생 성
2.파일 도입
2.1 demo 를 다운로드 하고 demo 의 com.google.zxing 5 개의 가방 과 com.utils 가방 을 복사 하여 자신의 프로젝트 에 도입 합 니 다.
2.2 본 프로젝트 demo 의 레이아웃 activity 복사scanner.xml 와 toolbarscanner.xml
2.3 자원 디 렉 터 리 raw 를 이 항목 에 복사 하면 beep.ogg 는 스 캔 에 성 공 했 을 때의 알림 음 입 니 다.
2.4 파일 내용 attrs.xml/colors.xml/ids.xml 세 파일 을 복사 하거나 병합 합 니 다.
2.5 build.gradle 파일 에 인용 추가
compile 'com.google.zxing:core:3.3.0'
2.6 R 파일 참조 경 로 를 수정 하여 다음 4 개 파일 의 R 파일 참조 주 소 를 수정 하고 본 항목 의 R 을 참조 합 니 다.
//com.google
com.google.zxing.activity.CaptureActivity
com.google.zxing.decoding.CaptureActivityHandler
com.google.zxing.decoding.DecodeHandler
com.google.zxing.view.ViewfinderView
3.권한 설정3.1 AndroidManifest.xml 에 권한 신청 코드 추가:
<uses-permission android:name="android.permission.INTERNET" /> <!-- -->
<uses-permission android:name="android.permission.VIBRATE" /> <!-- -->
<uses-permission android:name="android.permission.CAMERA" /> <!-- -->
<uses-feature android:name="android.hardware.camera.autofocus" /> <!-- -->
4.기능 실현위 와 같은 통합 을 마 친 후 Capture Activity 를 호출 하면 스 캔 기능 을 실현 할 수 있 습 니 다.MainActivity 소스 코드 부분:
public class MainActivity extends AppCompatActivity {
@BindView(R.id.openQrCodeScan)
Button openQrCodeScan;
@BindView(R.id.text)
EditText text;
@BindView(R.id.CreateQrCode)
Button CreateQrCode;
@BindView(R.id.QrCode)
ImageView QrCode;
@BindView(R.id.qrCodeText)
TextView qrCodeText;
//
private int REQUEST_CODE = 0x01;
//
private int RESULT_OK = 0xA1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
}
@OnClick({R.id.openQrCodeScan, R.id.CreateQrCode})
public void onClick(View view) {
switch (view.getId()) {
case R.id.openQrCodeScan:
//
if(CommonUtil.isCameraCanUse()){
Intent intent = new Intent(MainActivity.this, CaptureActivity.class);
startActivityForResult(intent, REQUEST_CODE);
}else{
Toast.makeText(this," !",Toast.LENGTH_SHORT).show();
}
break;
case R.id.CreateQrCode:
try {
//
String str = text.getText().toString().trim();
if(str != null && !"".equals(str.trim())){
//
Bitmap mBitmap = EncodingHandler.createQRCode(text.getText().toString(), 500);
if(mBitmap != null){
Toast.makeText(this," !",Toast.LENGTH_SHORT).show();
QrCode.setImageBitmap(mBitmap);
}
}else{
Toast.makeText(this," !",Toast.LENGTH_SHORT).show();
}
} catch (WriterException e) {
e.printStackTrace();
}
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//
if (resultCode == RESULT_OK) { //RESULT_OK = -1
Bundle bundle = data.getExtras();
String scanResult = bundle.getString("qr_scan_result");
//
qrCodeText.setText(scanResult);
}
}
}
5.소스 코드 분석5.1 QR 코드 스 캔 인터페이스 열기
//
if(CommonUtil.isCameraCanUse()){
Intent intent = new Intent(MainActivity.this, CaptureActivity.class);
startActivityForResult(intent, REQUEST_CODE);
}else{
Toast.makeText(this," !",Toast.LENGTH_SHORT).show();
}
5.2 입력 한 텍스트 에 따라 해당 하 는 QR 코드 를 생 성하 고 표시
try {
//
String str = text.getText().toString().trim();
if(str != null && !"".equals(str.trim())){
//
Bitmap mBitmap = EncodingHandler.createQRCode(text.getText().toString(), 500);
if(mBitmap != null){
Toast.makeText(this," !",Toast.LENGTH_SHORT).show();
QrCode.setImageBitmap(mBitmap);
}
}else{
Toast.makeText(this," !",Toast.LENGTH_SHORT).show();
}
} catch (WriterException e) {
e.printStackTrace();
}
5.3 스 캔 결과 리 셋
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//
if (resultCode == RESULT_OK) { //RESULT_OK = -1
Bundle bundle = data.getExtras();
String scanResult = bundle.getString("qr_scan_result");
//
qrCodeText.setText(scanResult);
}
}
총결산위 에서 말 한 것 은 편집장 이 여러분 에 게 소개 한 안 드 로 이 드 QR 코드 스 캔 과 QR 코드 생 성 기능 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 은 신속하게 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.