informasi Umum
Dalam artikel terakhir kami, kami membahas cara mengintegrasikan HMS Core Scan SDK dengan cepat dan membandingkan SDK ini dengan alat pemindaian kode batang sumber terbuka lainnya. Jika Anda belum membaca artikel ini, Anda dapat menemukannya di sini .
Kami memindai kode batang setiap hari untuk membayar pembelian, berlangganan akun media sosial, dan menerima informasi produk. Hari ini saya ingin menunjukkan kepada Anda bagaimana menerapkan fungsionalitas pemindaian kode batang di aplikasi belanja Anda.
Skenario
Dengan fitur ini, pengguna dapat memindai kode batang untuk mendapatkan informasi produk dan tautan untuk melakukan pembelian.
Diagram aksi
Latihan
Buka file build.gradle di folder gradle
Buka allprojects> repositories dan konfigurasikan alamat repositori Maven untuk HMS Core SDK.
allprojects {
repositories {
google()
jcenter()
maven {url 'http://developer.huawei.com/repo/'}
}
}
Buka buildscript> repositories dan konfigurasikan alamat repositori Maven untuk HMS Core SDK.
buildscript {
repositories {
google()
jcenter()
maven {url 'http://developer.huawei.com/repo/'}
}
}
Tambahkan dependensi
Buka file build.gradle di folder aplikasi .
Integrasikan 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" />
Karena integrasi SDK menggunakan mode Tampilan default, tentukan hak untuk menggunakan layar pindai di file AndroidManifest.xml di folder aplikasi.
<activity android:name="com.huawei.hms.hmsscankit.ScanKitActivity" />
Penerapan
Dua fungsi tersedia untuk implementasi: menambahkan produk dan mencari produk. Anda dapat menghubungkan produk dengan memindai kode batang dan mengambil foto. Pengguna kemudian dapat mencari produk ini dengan memindai kode batang.
Kirimkan permintaan untuk permintaan hak dinamis
private static final int PERMISSION_REQUESTS = 1;
@Override
public void onCreate(Bundle savedInstanceState) {
// Checking camera permission
if (!allPermissionsGranted()) {
getRuntimePermissions();
}
}
Buka layar tambah produk
Klik Tambahkan Produk untuk membuka layar tempat Anda dapat menambahkan produk.
public void addProduct(View view) {
Intent intent = new Intent(MainActivity.this, AddProductActivity.class);
startActivityForResult(intent, REQUEST_ADD_PRODUCT);
}
Pindai kode batang untuk mencatat informasi produk
Pindai kode batang menggunakan Tampilan Default HUAWEI Scan Kit.
private void scanBarcode(int requestCode) {
HmsScanAnalyzerOptions options = new HmsScanAnalyzerOptions.Creator().setHmsScanTypes(HmsScan.ALL_SCAN_TYPE).create();
ScanUtil.startScan(this, requestCode, options);
}
Simpan hasil pemindaian dalam fungsi panggilan balik
@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)) {
……
}
}
Pindai kode batang untuk menemukan produk
Klik Produk Kueri dan buka layar tempat Anda dapat menemukan produk. Tampilkan hasilnya dengan fungsi panggilan balik.
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();
}
}
}
Cobalah sendiri!
Klik Tambahkan Produk . Pada layar yang muncul, pindai kode batang produk dan ambil foto produk. Klik Query Product dan pindai kode batang produk. Karena produk telah terdaftar di sistem, informasi tentang itu akan dikembalikan.
github.com/HMS-Core/hms-scan-demo/tree/master/Scan-Shopping
Contoh baru
Kami akan membagikan kepada Anda contoh fitur luar biasa lainnya yang tersedia di HUAWEI Scan Kit. Ikuti beritanya!