Google code scanner API راهکاری کامل برای اسکن کردن کد ارائه میدهد بدون اینکه لازم باشد برنامهتان اجازه دوربین درخواست کند و درعینحال حریم خصوصی کاربر را حفظ میکند. این کار با واگذار کردن وظیفه اسکن کردن کد به خدمات Google Play و برگرداندن فقط نتایج اسکن به برنامه شما انجام میشود (ویدیو ۱).
همه پردازشهای تصویر در دستگاه انجام میشود و Google نتایج یا دادههای تصویر را ذخیره نمیکند. این میانای برنامهسازی کاربردی از همان قالبهای کد
میانای برنامهسازی کاربردی «اسکن رمزینه» ML Kit پشتیبانی میکند و همان
شیء Barcode
را برمیگرداند.
این «میانای برنامهسازی کاربردی» برای برنامههایی که نیاز به اسکن یکپارچه کد بدون نیاز به واسط کاربر سفارشی یا تجربه دوربین دارند ایدهآل است. پیادهسازی کاملاً در خدمات Google Play قرار دارد و این امر باعث میشود تأثیر آن بر اندازه برنامهتان حداقل باشد.
از نسخه ۱۶.۱.۰، میتوانید بزرگنمایی خودکار را فعال کنید تا اسکنر کد Google بتواند بهطور خودکار بارکدهایی را که از دوربین دور هستند اسکن کند. وقتی کاربران دستگاههایشان را بهسمت بارکد میگیرند، اسکنر بهطور هوشمند بارکد را تشخیص میدهد و روی آن زوم میکند. این کار نیاز به تنظیمات دستی بزرگنمایی را ازبین میبرد و اسکن بارکد را سریعتر، دقیقتر، و دسترسپذیرتر میکند (ویدیو ۲ را ببینید).
![]() |
![]() |
| ویدیو ۱. یکپارچهسازی کدخوان Google | ویدیو ۲. جلوه بزرگنمایی خودکار |
برای موارد استفاده پیچیدهتر که به رابط کاربری سفارشی نیاز دارند، توصیه میکنیم مستقیماً از ML Kit Barcode Scanning API استفاده کنید.
اگر سؤالی دارید، میخواهید اشکالی را گزارش کنید، یا به کمک نیاز دارید، صفحه انجمن ML Kit را بررسی کنید.
قبلاز شروع
برای آمادهسازی برنامهتان، مراحل بخشهای زیر را تکمیل کنید.
پیکربندی برنامه
در فایل
settings.gradleسطح بالای خود، مخزن Maven Google و مخزن مرکزی Maven را در زیر بلوکdependencyResolutionManagementاضافه کنید:dependencyResolutionManagement { repositories { google() mavenCentral() } }وابستگی «خدمات Google Play» را برای
play-services-code-scannerSDK به فایل ساخت Gradle واحدتان اضافه کنید، که معمولاًapp/build.gradleاست:dependencies { implementation 'com.google.android.gms:play-services-code-scanner:16.1.0' }میتوانید برنامهتان را بهگونهای پیکربندی کنید که «خدمات Google Play» بهطور خودکار هنگام نصب برنامهتان از «فروشگاه Play»، واحد اسکنر را در دستگاه بارگیری کند.
<application ...> ... <meta-data android:name="com.google.mlkit.vision.DEPENDENCIES" android:value="barcode_ui"/> ... </application>همچنین میتوانید دردسترس بودن واحد اسکنر را بهطور صریح بررسی کنید و ازطریق خدمات Google Play ModuleInstallClient API درخواست بارگیری کنید.
اگر بارگیری واحد در زمان نصب را فعال نکنید یا بارگیریهای صریح را درخواست نکنید—و واحد اسکنر ازقبل برای مورد استفاده دیگری نصب نشده باشد—خدمات Google Play واحد اسکنر را اولینبار که استفاده میشود بارگیری میکند.
اسکن کردن کد
برای اسکن کردن بارکد، مراحل زیر را اجرا کنید.
اختیاری: کدخوان را پیکربندی کنید.
اگر میدانید که انتظار دارید کدام قالبهای بارکد خوانده شود، میتوانید با پیکربندی کردن آشکارساز بارکد برای شناسایی فقط آن قالبها، سرعت آن را بهبود دهید. برای مثال، برای شناسایی فقط کد Aztec و رمزینههای پاسخسریع،
GmsBarcodeScannerOptionsشیئی را مانند مثال زیر بسازید:Kotlin
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();
بهطور پیشفرض، بزرگنمایی خودکار خاموش است. برای فعال کردن عملکرد بزرگنمایی خودکار از نسخه 16.1.0، همانطور که در نمونه کد زیر نشان داده شده است، با
enableAutoZoom()تماس بگیرید.Kotlin
val options = GmsBarcodeScannerOptions.Builder() .setBarcodeFormats(...) .enableAutoZoom() // available on 16.1.0 and higher .build()
جاوا
GmsBarcodeScannerOptions options = new GmsBarcodeScannerOptions.Builder() .setBarcodeFormats(...) .enableAutoZoom() // available on 16.1.0 and higher .build();
نمونهای از
GmsBarcodeScannerرا دریافت کنید، همانطور که در نمونه کد نشان داده شده است:Kotlin
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);
با تماس با
startScan()، درخواست اسکن کد کنید.Kotlin
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 });
Barcodeحاصل را مدیریت کنید.Kotlin
val rawValue: String? = barcode.rawValue
جاوا
String rawValue = barcode.getRawValue();

