
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();