Google code scanner API یک راه حل کامل برای اسکن کدها بدون نیاز به درخواست مجوز دوربین از برنامه شما ارائه می دهد و در عین حال حریم خصوصی کاربر را حفظ می کند. این کار با واگذاری وظیفه اسکن کد به خدمات Google Play و برگرداندن فقط نتایج اسکن به برنامه شما انجام می شود. تمام پردازش تصویر در دستگاه انجام می شود و Google نتایج یا داده های تصویر را ذخیره نمی کند. API از فرمتهای کد مشابه با ML Kit Barcode Scanning API پشتیبانی میکند و همان شی بارکد را برمیگرداند.
این API برای برنامههایی ایدهآل است که به سادگی نیاز به اسکن کد دارند و نیازی به رابط کاربری سفارشی یا تجربه دوربین ندارند. این پیاده سازی کاملاً در خدمات Google Play قرار دارد، بنابراین تأثیر قابل توجهی بر اندازه برنامه شما ندارد. برای موارد استفاده پیچیدهتر که به یک رابط کاربری سفارشی نیاز دارند، مستقیماً از ML Kit Barcode Scanning API استفاده کنید.
اگر سؤالی دارید، میخواهید یک اشکال ارسال کنید یا به کمک نیاز دارید، صفحه انجمن کیت ML را بررسی کنید.
قبل از اینکه شروع کنی
برای آماده سازی اپلیکیشن خود، مراحل زیر را انجام دهید.
برنامه خود را پیکربندی کنید
در فایل
settings.gradle
سطح بالای خود، مخزن Maven Google و مخزن مرکزی Maven را در زیر بلوکdependencyResolutionManagement
قرار دهید:dependencyResolutionManagement { repositories { google() mavenCentral() } }
وابستگی خدمات Google Play را برای
play-services-code-scanner
SDK به فایل ساخت Gradle ماژول خود اضافه کنید که معمولاًapp/build.gradle
است:dependencies { implementation 'com.google.android.gms:play-services-code-scanner:16.0.0-beta3' }
میتوانید برنامهتان را طوری پیکربندی کنید که سرویسهای Google Play بهطور خودکار ماژول اسکنر را در زمانی که برنامهتان از فروشگاه Play نصب شده است، در دستگاه دانلود کنند.
<application ...> ... <meta-data android:name="com.google.mlkit.vision.DEPENDENCIES" android:value="barcode_ui"/> ... </application>
همچنین میتوانید صریحاً در دسترس بودن ماژول اسکنر را بررسی کنید و از طریق سرویسهای Google Play ModuleInstallClient API درخواست دانلود کنید.
اگر دانلودهای ماژول زمان نصب را فعال نکنید یا درخواست دانلود صریح نداشته باشید، سرویسهای Google Play ماژول اسکنر را در اولین بار استفاده از آن دانلود میکند، اگر قبلاً برای موارد استفاده دیگری نصب نشده باشد.
یک کد را اسکن کنید
1. (اختیاری) اسکنر کد را پیکربندی کنید
اگر میدانید کدام فرمتهای بارکد را میخواهید بخوانید، میتوانید سرعت بارکد یاب را با پیکربندی آن به گونهای که فقط آن فرمتها را شناسایی کند، افزایش دهید. به عنوان مثال، برای شناسایی فقط کدهای آزتک و کدهای QR، یک شی GmsBarcodeScannerOptions مانند مثال زیر بسازید:
کاتلین
val options = GmsBarcodeScannerOptions.Builder() .setBarcodeFormats( Barcode.FORMAT_QR_CODE, Barcode.FORMAT_AZTEC) .build()
جاوا
GmsBarcodeScannerOptions options = new GmsBarcodeScannerOptions.Builder() .setBarcodeFormats( Barcode.FORMAT_QR_CODE, Barcode.FORMAT_AZTEC) .build();
2. یک نمونه از GmsBarcodeScanner را دریافت کنید
کاتلین
val scanner = GmsBarcodeScanning.getClient(this) // Or with a configured options // val scanner = GmsBarcodeScanning.getClient(this, options)
جاوا
GmsBarcodeScanner scanner = GmsBarcodeScanning.getClient(this); // Or with a configured options // GmsBarcodeScanner scanner = GmsBarcodeScanning.getClient(context, options);
3. درخواست اسکن کد با فراخوانی startScan()
کاتلین
scanner.startScan() .addOnSuccessListener { barcode -> // Task completed successfully } .addOnCanceledListener { // Task canceled } .addOnFailureListener { e -> // Task failed with an exception }
جاوا
scanner .startScan() .addOnSuccessListener( barcode -> { // Task completed successfully }) .addOnCanceledListener( () -> { // Task canceled }) .addOnFailureListener( e -> { // Task failed with an exception });
4. بارکد حاصل را مدیریت کنید
کاتلین
val rawValue: String? = barcode.rawValue
جاوا
String rawValue = barcode.getRawValue();