با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
Google code scanner API یک راه حل کامل برای اسکن کد بدون نیاز به برنامه شما برای درخواست مجوز دوربین و در عین حال حفظ حریم خصوصی کاربر ارائه می دهد. این کار با واگذاری وظیفه اسکن کد به خدمات Google Play و برگرداندن فقط نتایج اسکن به برنامه شما انجام می شود (ویدئو 1). تمام پردازش تصویر در دستگاه انجام می شود و Google نتایج یا داده های تصویر را ذخیره نمی کند. API از فرمتهای کد مشابه با ML Kit Barcode Scanning API پشتیبانی میکند و همان شی Barcode را برمیگرداند.
این API برای برنامههایی که نیاز به اسکن کد یکپارچه بدون نیاز به رابط کاربری سفارشی یا تجربه دوربین دارند ایدهآل است. پیاده سازی کاملاً در خدمات Google Play قرار دارد و حداقل تأثیر را بر اندازه برنامه شما تضمین می کند.
با شروع نسخه 16.1.0، میتوانید زوم خودکار را فعال کنید تا به اسکنر کد Google اجازه دهید به طور خودکار بارکدهایی را که از دوربین دور هستند اسکن کند. هنگامی که کاربران دستگاه های خود را به سمت بارکد می گیرند، اسکنر به طور هوشمند بارکد را تشخیص داده و روی آن بزرگنمایی می کند. این امر نیاز به تنظیمات دستی زوم را از بین می برد و اسکن بارکد را سریع تر، دقیق تر و در دسترس تر می کند (به ویدیوی 2 مراجعه کنید).
ویدئو 1. یکپارچه سازی اسکنر کد گوگل
ویدئو 2. جلوه زوم خودکار
برای موارد استفاده پیچیدهتر که به یک رابط کاربری سفارشی نیاز دارند، توصیه میکنیم مستقیماً از API اسکن بارکد ML Kit استفاده کنید.
اگر سؤالی دارید، میخواهید یک اشکال ارسال کنید یا به کمک نیاز دارید، صفحه انجمن کیت ML را بررسی کنید.
قبل از شروع
برای آماده سازی اپلیکیشن خود، مراحل زیر را انجام دهید.
میتوانید برنامه خود را طوری پیکربندی کنید که سرویسهای Google Play به طور خودکار ماژول اسکنر را در دستگاه دانلود کنند، در حالی که برنامه شما از فروشگاه Play نصب شده است.
همچنین میتوانید صریحاً در دسترس بودن ماژول اسکنر را بررسی کنید و از طریق سرویسهای Google Play ModuleInstallClient API درخواست دانلود کنید.
اگر دانلود ماژول زمان نصب را فعال نکنید یا درخواست دانلودهای صریح را نداشته باشید - و ماژول اسکنر قبلاً برای موارد استفاده دیگری نصب نشده است - خدمات Google Play ماژول اسکنر را اولین بار که استفاده می شود دانلود می کند.
یک کد را اسکن کنید
مراحل زیر را برای اسکن بارکد انجام دهید.
اختیاری: اسکنر کد را پیکربندی کنید.
اگر میدانید کدام قالبهای بارکد را میخواهید بخوانید، میتوانید سرعت بارکد یاب را با پیکربندی آن به گونهای که فقط آن فرمتها را شناسایی کند، افزایش دهید. به عنوان مثال، برای شناسایی فقط کدهای آزتک و کدهای QR، یک شی GmsBarcodeScannerOptions مانند مثال زیر بسازید:
به طور پیش فرض، زوم خودکار خاموش است. برای فعال کردن عملکرد بزرگنمایی خودکار که در نسخه 16.1.0 شروع می شود، همانطور که در مثال کد زیر نشان داده شده است enableAutoZoom() فراخوانی کنید.
کاتلین
valoptions=GmsBarcodeScannerOptions.Builder().setBarcodeFormats(...).enableAutoZoom()// available on 16.1.0 and higher.build()
جاوا
GmsBarcodeScannerOptionsoptions=newGmsBarcodeScannerOptions.Builder().setBarcodeFormats(...).enableAutoZoom()// available on 16.1.0 and higher.build();
همانطور که در مثال کد نشان داده شده است، یک نمونه از GmsBarcodeScanner دریافت کنید:
کاتلین
valscanner=GmsBarcodeScanning.getClient(this)// Or with a configured options// val scanner = GmsBarcodeScanning.getClient(this, options)
جاوا
GmsBarcodeScannerscanner=GmsBarcodeScanning.getClient(this);// Or with a configured options// GmsBarcodeScanner scanner = GmsBarcodeScanning.getClient(context, options);
تاریخ آخرین بهروزرسانی 2025-08-29 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2025-08-29 بهوقت ساعت هماهنگ جهانی."],[[["\u003cp\u003eThe Google Code Scanner API enables code scanning without requiring camera permission, preserving user privacy by delegating the task to Google Play services.\u003c/p\u003e\n"],["\u003cp\u003eIt supports various code formats, returns a \u003ccode\u003eBarcode\u003c/code\u003e object, and is ideal for apps needing seamless code scanning without a custom UI.\u003c/p\u003e\n"],["\u003cp\u003eAuto-zoom, available from version 16.1.0, automatically zooms in on barcodes, eliminating the need for manual adjustments and making scanning faster and more accurate.\u003c/p\u003e\n"],["\u003cp\u003eThe API uses an unbundled library downloaded before use and requires Android API level 21 or higher.\u003c/p\u003e\n"],["\u003cp\u003eFor complex use cases requiring a custom UI, the ML Kit Barcode Scanning API is recommended.\u003c/p\u003e\n"]]],[],null,["The Google code scanner API provides a complete solution for scanning code\nwithout requiring your app to request camera permission, while preserving user\nprivacy. This is accomplished by delegating the task of scanning the code to\nGoogle Play services and returning only the scan results to your app (Video 1).\nAll image processing occurs on the device and Google doesn't store the results\nor image data. The API supports the same code formats as the\n[ML Kit Barcode Scanning API](/ml-kit/vision/barcode-scanning) and returns the\nsame [`Barcode`](/android/reference/com/google/mlkit/vision/barcode/common/Barcode)\nobject.\n\nThis API is ideal for apps that require seamless code scanning without the need\nfor a custom UI or camera experience. The implementation resides entirely within\nGoogle Play services, ensuring minimal impact on the size of your app.\n\nStarting with version 16.1.0, you can enable auto-zoom to allow the Google code\nscanner to automatically scan barcodes that are far away from the camera. When\nusers point their devices at a barcode, the scanner will intelligently detect\nand zoom in on the barcode. This eliminates the need for manual zoom\nadjustments, making barcode scanning faster, more accurate and more accessible\n(see Video 2).\n\n|------------------------------------------|---------------------------|\n| | |\n| Video 1. Google code scanner integration | Video 2. Auto-zoom effect |\n\n\u003cbr /\u003e\n\nFor more complex use cases that require a custom UI, we recommend using the\n[ML Kit Barcode Scanning API](/ml-kit/vision/barcode-scanning) directly.\n\nIf you have questions, want to submit a bug, or need assistance, check the\n[ML Kit community page](/ml-kit/community).\n| This API uses an unbundled library that must be downloaded before use. See [this guide](/ml-kit/tips/installation-paths) for more information.\n\nBefore you begin This API requires Android API level 21 or above. Make sure that your app's build file uses a `minSdkVersion` value of 21 or higher.\n\nTo prepare your app, complete the steps in the following sections.\n\nConfigure your app\n\n1. In your top-level `settings.gradle` file, include\n [Google's Maven repository](https://maven.google.com/web/index.html) and\n [Maven central repository](https://search.maven.org/artifact) in under the\n `dependencyResolutionManagement` block:\n\n dependencyResolutionManagement {\n repositories {\n google()\n mavenCentral()\n }\n }\n\n2. Add the Google Play services dependency for the `play-services-code-scanner`\n SDK to your module's Gradle build file, which is commonly `app/build.gradle`:\n\n dependencies {\n implementation 'com.google.android.gms:play-services-code-scanner:16.1.0'\n }\n\n3. You can configure your app to have Google Play services automatically\n download the scanner module to the device while your app is installed from\n the Play Store.\n\n \u003capplication ...\u003e\n ...\n \u003cmeta-data\n android:name=\"com.google.mlkit.vision.DEPENDENCIES\"\n android:value=\"barcode_ui\"/\u003e\n ...\n \u003c/application\u003e\n\n You can also explicitly check the scanner module availability and request\n download through Google Play services [ModuleInstallClient\n API](https://developers.google.com/android/guides/module-install-apis).\n\n If you don't enable install-time module downloads or request explicit\n downloads---and the scanner module isn't already installed for another\n use case---Google Play services downloads the scanner module the first\n time it's used.\n\nScan a code\n\nImplement the following steps to scan a barcode.\n\n1. Optional: Configure the code scanner.\n\n If you know which barcode formats you expect to read, you can improve the\n speed of the barcode detector by configuring it to only detect those\n formats. For example, to detect only Aztec code and QR codes, build a\n [`GmsBarcodeScannerOptions`](/android/reference/com/google/mlkit/vision/codescanner/GmsBarcodeScannerOptions.Builder)\n object as in the following example: \n\n Kotlin \n\n ```kotlin\n val options = GmsBarcodeScannerOptions.Builder()\n .setBarcodeFormats(\n Barcode.FORMAT_QR_CODE,\n Barcode.FORMAT_AZTEC)\n .build()\n ```\n\n Java \n\n ```java\n GmsBarcodeScannerOptions options = new GmsBarcodeScannerOptions.Builder()\n .setBarcodeFormats(\n Barcode.FORMAT_QR_CODE,\n Barcode.FORMAT_AZTEC)\n .build();\n ```\n\n By default, auto-zoom is turned off. To enable auto-zoom functionality\n starting in version 16.1.0, call `enableAutoZoom()` as shown in the\n following code example. \n\n Kotlin \n\n ```kotlin\n val options = GmsBarcodeScannerOptions.Builder()\n .setBarcodeFormats(...)\n .enableAutoZoom() // available on 16.1.0 and higher\n .build()\n ```\n\n Java \n\n ```java\n GmsBarcodeScannerOptions options = new GmsBarcodeScannerOptions.Builder()\n .setBarcodeFormats(...)\n .enableAutoZoom() // available on 16.1.0 and higher\n .build();\n ```\n2. Get an instance of [`GmsBarcodeScanner`](/android/reference/com/google/mlkit/vision/codescanner/GmsBarcodeScanner),\n as shown in the code example:\n\n Kotlin \n\n ```kotlin\n val scanner = GmsBarcodeScanning.getClient(this)\n // Or with a configured options\n // val scanner = GmsBarcodeScanning.getClient(this, options)\n ```\n\n Java \n\n ```java\n GmsBarcodeScanner scanner = GmsBarcodeScanning.getClient(this);\n // Or with a configured options\n // GmsBarcodeScanner scanner = GmsBarcodeScanning.getClient(context, options);\n ```\n3. Request a code scanning by calling [`startScan()`](/android/reference/com/google/mlkit/vision/codescanner/GmsBarcodeScanner#startScan()).\n\n Kotlin \n\n ```kotlin\n scanner.startScan()\n .addOnSuccessListener { barcode -\u003e\n // Task completed successfully\n }\n .addOnCanceledListener {\n // Task canceled\n }\n .addOnFailureListener { e -\u003e\n // Task failed with an exception\n }\n ```\n\n Java \n\n ```java\n scanner\n .startScan()\n .addOnSuccessListener(\n barcode -\u003e {\n // Task completed successfully\n })\n .addOnCanceledListener(\n () -\u003e {\n // Task canceled\n })\n .addOnFailureListener(\n e -\u003e {\n // Task failed with an exception\n });\n ```\n4. Handle the resulting [`Barcode`](/android/reference/com/google/mlkit/vision/barcode/common/Barcode).\n\n Kotlin \n\n ```kotlin\n val rawValue: String? = barcode.rawValue\n ```\n\n Java \n\n ```java\n String rawValue = barcode.getRawValue();\n ```"]]