معلومات عامة
في مقالتنا الأخيرة ، قمنا بتغطية كيفية دمج HMS Core Scan SDK بسرعة ومقارنة SDK بأدوات مسح الباركود مفتوحة المصدر الأخرى. إذا لم تكن قد قرأت هذه المقالة بعد ، فيمكنك العثور عليها هنا .
نقوم بمسح الباركود كل يوم لدفع ثمن المشتريات والاشتراك في حسابات وسائل التواصل الاجتماعي وتلقي معلومات المنتج. أريد اليوم أن أوضح لك كيفية تنفيذ وظيفة مسح الباركود في تطبيق التسوق الخاص بك.
سيناريو
باستخدام هذه الميزة ، يمكن للمستخدمين مسح رمز شريطي للحصول على معلومات المنتج ورابط لإجراء عملية شراء.
مخطط العمل
تدريب
افتح ملف build.gradle في مجلد gradle
انتقل إلى allprojects> المستودعات وقم بتكوين عنوان مستودع Maven لـ HMS Core SDK.
allprojects {
repositories {
google()
jcenter()
maven {url 'http://developer.huawei.com/repo/'}
}
}
انتقل إلى buildscript> المستودعات وقم بتكوين عنوان مستودع Maven لـ HMS Core SDK.
buildscript {
repositories {
google()
jcenter()
maven {url 'http://developer.huawei.com/repo/'}
}
}
أضف التبعيات
افتح ملف 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();
}
}
}
جربها بنفسك!
انقر فوق إضافة منتج . على الشاشة التي تظهر ، امسح الرمز الشريطي للمنتج ضوئيًا والتقط صورة للمنتج. انقر فوق Query Product وقم بمسح الرمز الشريطي للمنتج. منذ أن تم تسجيل المنتج في النظام ، سيتم إرجاع معلومات عنه.
github.com/HMS-Core/hms-scan-demo/tree/master/Scan-Shopping
أمثلة جديدة
سنشارك معك أمثلة على الميزات الرائعة الأخرى المتوفرة في HUAWEI Scan Kit. تابع الأخبار!