allgemeine Informationen
In unserem letzten Artikel haben wir uns mit der schnellen Integration des HMS Core Scan SDK befasst und dieses SDK mit anderen Open-Source-Barcode-Scan-Tools verglichen. Wenn Sie diesen Artikel noch nicht gelesen haben, finden Sie ihn hier .
Wir scannen jeden Tag Barcodes, um Einkäufe zu bezahlen, Social-Media-Konten zu abonnieren und Produktinformationen zu erhalten. Heute möchte ich Ihnen zeigen, wie Sie die Barcode-Scanfunktion in Ihrer Einkaufs-App implementieren.
Szenario
Mit dieser Funktion können Benutzer einen Barcode scannen, um Produktinformationen und einen Link zum Kauf zu erhalten.
Aktionsdiagramm
Ausbildung
Öffnen Sie die Datei build.gradle im Gradle-Ordner
Gehen Sie zu allprojects> repositories und konfigurieren Sie die Maven-Repository-Adresse für das HMS Core SDK.
allprojects {
repositories {
google()
jcenter()
maven {url 'http://developer.huawei.com/repo/'}
}
}
Gehen Sie zu Buildscript> Repositorys und konfigurieren Sie die Maven-Repository-Adresse für das HMS Core SDK.
buildscript {
repositories {
google()
jcenter()
maven {url 'http://developer.huawei.com/repo/'}
}
}
Abhängigkeiten hinzufügen
Öffnen Sie die Datei build.gradle im App- Ordner .
Integrieren Sie das 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" />
Da die SDK-Integration den Standardansichtsmodus verwendet, geben Sie das Recht an, den Scanbildschirm in der Datei AndroidManifest.xml im Anwendungsordner zu verwenden.
<activity android:name="com.huawei.hms.hmsscankit.ScanKitActivity" />
Implementierung
Für die Implementierung stehen zwei Funktionen zur Verfügung: Hinzufügen eines Produkts und Suchen nach einem Produkt. Sie können ein Produkt verknüpfen, indem Sie einen Barcode scannen und ein Foto aufnehmen. Benutzer können dann nach diesem Produkt suchen, indem sie den Barcode scannen.
Senden Sie eine Anfrage für eine dynamische Rechte-Anfrage
private static final int PERMISSION_REQUESTS = 1;
@Override
public void onCreate(Bundle savedInstanceState) {
// Checking camera permission
if (!allPermissionsGranted()) {
getRuntimePermissions();
}
}
Öffnen Sie den Bildschirm Produkt hinzufügen
Klicken Sie auf Produkt hinzufügen, um einen Bildschirm zu öffnen, in dem Sie ein Produkt hinzufügen können.
public void addProduct(View view) {
Intent intent = new Intent(MainActivity.this, AddProductActivity.class);
startActivityForResult(intent, REQUEST_ADD_PRODUCT);
}
Scannen Sie den Barcode, um Produktinformationen aufzuzeichnen
Scannen Sie den Barcode mit der Standardansicht des HUAWEI Scan Kits.
private void scanBarcode(int requestCode) {
HmsScanAnalyzerOptions options = new HmsScanAnalyzerOptions.Creator().setHmsScanTypes(HmsScan.ALL_SCAN_TYPE).create();
ScanUtil.startScan(this, requestCode, options);
}
Speichern Sie das Scan-Ergebnis in einer Rückruffunktion
@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)) {
……
}
}
Scannen Sie den Barcode, um ein Produkt zu finden
Klicken Sie auf Produkt abfragen und öffnen Sie den Bildschirm, auf dem Sie das Produkt finden. Zeigen Sie das Ergebnis mit einer Rückruffunktion an.
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();
}
}
}
Versuch es selber!
Klicken Sie auf Produkt hinzufügen . Scannen Sie auf dem angezeigten Bildschirm den Produkt-Barcode und machen Sie ein Foto des Produkts. Klicken Sie auf Produkt abfragen und scannen Sie den Produkt-Barcode. Da das Produkt im System registriert wurde, werden Informationen darüber zurückgegeben.
github.com/HMS-Core/hms-scan-demo/tree/master/Scan-Shopping
Neue Beispiele
Wir werden Ihnen Beispiele für andere erstaunliche Funktionen vorstellen, die im HUAWEI Scan Kit verfügbar sind. Folgen Sie den Nachrichten!