# HMS Core Scan SDK를 사용한 바코드 스캔 기능 구현
6094 단어 HMSHuawei안드로이드MachineLearning스캔
개요
당사의 최신 기사에서 HMS Core Scan SDK를 신속하게 통합하는 방법을 검토하고 이 SDK를 다른 오픈 소스 바코드 스캔 도구와 비교했습니다. 아직 이 문서를 읽지 않은 경우 여기를 클릭하여 확인할 수 있습니다.
우리는 제품을 구입하거나 소셜 미디어 계정을 팔로우하거나 제품에 대한 정보를 얻기 위해 매일 바코드를 사용합니다. 오늘은 바코드 스캔 기능을 쇼핑 앱에 구현하는 방법을 소개합니다.
시나리오
사용자는 이 기능을 사용하여 바코드를 스캔하고 제품 정보 및 구매 시 사용할 수 있는 링크를 수신할 수 있습니다.

프로세스

준비
gradle 디렉토리의 build.gradle 파일 열기

allprojects > repositories로 이동하여 HMS Core SDK의 Maven 리포지토리 주소를 설정합니다.
allprojects {
repositories {
google()
jcenter()
maven {url 'http://developer.huawei.com/repo/'}
}
}
buildscript > repositories로 이동하여 HMS Core SDK의 Maven 리포지토리 주소를 설정합니다.
buildscript {
repositories {
google()
jcenter()
maven {url 'http://developer.huawei.com/repo/'}
}
}
빌드 종속성 추가
app 디렉토리의 build.gradle 파일을 엽니다.

HMS Core SDK를 통합합니다.
dependencies{
implementation 'com.huawei.hms:scan:1.1.3.301'
}
Assign permissions and specify features.
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
SDK 통합에는 기본 표시 모드를 사용하므로 앱의 AndroidManifest.xml 파일에서 스캔 화면을 선언합니다.
<activity android:name="com.huawei.hms.hmsscankit.ScanKitActivity" />
구현
제품 추가와 제품 조회라는 두 가지 기능을 구현할 수 있습니다. 제품 바코드를 스캔하고 촬영하여 제품을 바인딩할 수 있습니다. 사용자는 바코드를 스캔하여 제품을 조회할 수 있습니다.
동적 권한 신청 제출
private static final int PERMISSION_REQUESTS = 1;
@Override
public void onCreate(Bundle savedInstanceState) {
// Checking camera permission
if (!allPermissionsGranted()) {
getRuntimePermissions();
}
}
화면을 열고 제품 추가
제품 추가를 탭하여 제품을 추가할 수 있는 화면을 엽니다.
public void addProduct(View view) {
Intent intent = new Intent(MainActivity.this, AddProductActivity.class);
startActivityForResult(intent, REQUEST_ADD_PRODUCT);
}
바코드를 스캔하여 제품 정보를 기록합니다.
HUAWEI Scan Kit의 기본 디스플레이 모드를 사용하여 바코드를 스캔합니다.
private void scanBarcode(int requestCode) {
HmsScanAnalyzerOptions options = new HmsScanAnalyzerOptions.Creator().setHmsScanTypes(HmsScan.ALL_SCAN_TYPE).create();
ScanUtil.startScan(this, requestCode, options);
}
콜백 함수로 스캔 결과 저장
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (data == null) {
return;
}
if ((requestCode == this.REQUEST_CODE_SCAN_ALL)
&& (resultCode == Activity.RESULT_OK)) {
HmsScan obj = data.getParcelableExtra(ScanUtil.RESULT);
if (obj != null && obj.getOriginalValue() != null) {
this.barcode = obj.getOriginalValue();
}
} else if ((requestCode == this.REQUEST_TAKE_PHOTO)
&& (resultCode == Activity.RESULT_OK)) {
……
}
}
바코드를 스캔하여 제품 조회
조회 제품을 탭하여 제품을 조회할 수 있는 화면을 여십시오. 콜백 함수를 사용하여 결과를 표시합니다.
public void queryProduct(View view) {
HmsScanAnalyzerOptions options = new HmsScanAnalyzerOptions.Creator().setHmsScanTypes(HmsScan.ALL_SCAN_TYPE).create();
ScanUtil.startScan(this, REQUEST_QUERY_PRODUCT, options);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (data == null) {
return;
}
if ((requestCode == this.REQUEST_ADD_PRODUCT) && (resultCode == Activity.RESULT_OK)) {
barcodeToProduct.put(data.getStringExtra(Constant.BARCODE_VALUE), data.getStringExtra(Constant.IMAGE_PATH_VALUE));
} else if ((requestCode == this.REQUEST_QUERY_PRODUCT) && (resultCode == Activity.RESULT_OK)) {
HmsScan obj = data.getParcelableExtra(ScanUtil.RESULT);
String path = "";
if (obj != null && obj.getOriginalValue() != null) {
path = barcodeToProduct.get(obj.getOriginalValue());
}
if (path != null && !path.equals("")) {
loadCameraImage(path);
showPictures();
}
}
}
빨리 시도해 봅시다.
제품 추가를 탭합니다. 화면이 표시되면 제품의 바코드를 스캔하여 제품을 촬영합니다. 조회 제품을 탭하고 제품의 바코드를 스캔합니다. 제품이 시스템에 기록되면 해당 제품의 정보가 리턴됩니다.

More Info in Huawei Developer website
곧 공개 예정
HUAWEI Scan Kit를 사용하여 가능한 놀라운 사례를 더 소개합니다. 꼭 기다려주십시오.
Reference
이 문제에 관하여(# HMS Core Scan SDK를 사용한 바코드 스캔 기능 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/lwei6535/items/e5fa434ff635d2f4f07d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)