Google কোড স্ক্যানার (শুধুমাত্র Android-এ)

Google কোড স্ক্যানার API, আপনার অ্যাপকে ক্যামেরা অনুমতির অনুরোধ করতে না দিয়েই কোড স্ক্যান করার সম্পূর্ণ সমাধান প্রদান করে, একই সাথে ব্যবহারকারীর গোপনীয়তা বজায় রাখে। Google Play পরিষেবাকে কোড স্ক্যান করার দায়িত্ব দিয়ে এটি সম্পন্ন করা হয় এবং আপনার অ্যাপকে শুধু স্ক্যান করার ফলাফল দেখানো হয় (ভিডিও ১)। সব ছবি প্রসেসিং ডিভাইসে হয় এবং Google ফলাফল বা ছবির ডেটা স্টোর করে না। API-তে ML Kit বারকোড স্ক্যানিং API-এর মতো একই কোড ফর্ম্যাট কাজ করে এবং একই Barcode অবজেক্ট রিটার্ন করে।

এই API সেইসব অ্যাপের জন্য আদর্শ যেগুলির কাস্টম UI বা ক্যামেরা অভিজ্ঞতার প্রয়োজন ছাড়াই নির্বিঘ্নে কোড স্ক্যান করার প্রয়োজন হয়। ইমপ্লিমেন্টেশন সম্পূর্ণভাবে Google Play পরিষেবার মধ্যে থাকে, যা আপনার অ্যাপের সাইজের উপর ন্যূনতম প্রভাব নিশ্চিত করে।

16.1.0 ভার্সন থেকে শুরু করে, আপনি অটো-জুম চালু করতে পারবেন যাতে Google কোড স্ক্যানার অটোমেটিক সেইসব বারকোড স্ক্যান করতে পারে যেগুলি ক্যামেরা থেকে অনেক দূরে আছে। ব্যবহারকারী তার ডিভাইস বারকোডের দিকে তাক করলে, স্ক্যানার বুদ্ধিমত্তার সাথে বারকোড শনাক্ত করবে এবং জুম ইন করবে। এর ফলে ম্যানুয়ালি জুম অ্যাডজাস্ট করার প্রয়োজন হয় না, যার ফলে বারকোড স্ক্যান করা আরও দ্রুত, নির্ভুল ও অ্যাক্সেসযোগ্য হয়ে ওঠে (ভিডিও ২ দেখুন)।

ভিডিও ১. Google কোড স্ক্যানার ইন্টিগ্রেশন ভিডিও ২. অটোমেটিক-জুম এফেক্ট

কাস্টম UI-এর প্রয়োজন হয় এমন আরও জটিল ব্যবহারের ক্ষেত্রে, আমরা সরাসরি ML Kit বারকোড স্ক্যানিং API ব্যবহার করার সাজেশন দিই।

আপনার কোনও প্রশ্ন থাকলে, কোনও বাগ জমা দিতে চাইলে বা সাহায্যের প্রয়োজন হলে, ML Kit কমিউনিটি পৃষ্ঠা চেক করুন।

শুরু করার আগে

আপনার অ্যাপ প্রস্তুত করতে, নিম্নলিখিত বিভাগে উল্লেখ করা ধাপগুলি সম্পূর্ণ করুন।

আপনার অ্যাপ কনফিগার করুন

  1. আপনার টপ-লেভেল settings.gradle ফাইলে, Google-এর Maven রিপোজিটরি এবং Maven সেন্ট্রাল রিপোজিটরি-কে dependencyResolutionManagement ব্লকের মধ্যে অন্তর্ভুক্ত করুন:

    dependencyResolutionManagement {
      repositories {
        google()
        mavenCentral()
      }
    }
    
  2. আপনার মডিউলের Gradle বিল্ড ফাইলে play-services-code-scanner SDK-এর জন্য Google Play পরিষেবা সংক্রান্ত নির্ভরতা যোগ করুন, যা সাধারণত app/build.gradle:

    dependencies {
      implementation 'com.google.android.gms:play-services-code-scanner:16.1.0'
    }
    
  3. আপনার অ্যাপ Play Store থেকে ইনস্টল করার সময়, Google Play পরিষেবা যাতে ডিভাইসে স্ক্যানার মডিউল অটোমেটিক ডাউনলোড করে, সেই জন্য আপনি অ্যাপ কনফিগার করতে পারবেন।

    <application ...>
      ...
      <meta-data
          android:name="com.google.mlkit.vision.DEPENDENCIES"
          android:value="barcode_ui"/>
      ...
    </application>
    

    এছাড়াও, আপনি স্ক্যানার মডিউলের উপলভ্যতা স্পষ্টভাবে চেক করতে এবং Google Play পরিষেবা ModuleInstallClient API-এর মাধ্যমে ডাউনলোডের অনুরোধ করতে পারবেন।

    আপনি ইনস্টল-টাইম মডিউল ডাউনলোড চালু না করলে বা স্পষ্ট ডাউনলোডের অনুরোধ না করলে—এবং অন্য ব্যবহারের ক্ষেত্রে স্ক্যানার মডিউল আগে থেকেই ইনস্টল করা না থাকলে—Google Play পরিষেবা প্রথমবার ব্যবহার করার সময় স্ক্যানার মডিউল ডাউনলোড করে।

কোড স্ক্যান করুন

বারকোড স্ক্যান করতে নিম্নলিখিত ধাপগুলি অনুসরণ করুন।

  1. ঐচ্ছিক: কোড স্ক্যানার কনফিগার করুন।

    আপনি যদি জানেন যে কোন বারকোড ফর্ম্যাট পড়তে হবে, তাহলে আপনি শুধুমাত্র সেইসব ফর্ম্যাট শনাক্ত করার জন্য এটি কনফিগার করে বারকোড ডিটেক্টরের স্পিড উন্নত করতে পারবেন। যেমন, শুধু Aztec কোড এবং QR কোড শনাক্ত করতে, নিম্নলিখিত উদাহরণের মতো একটি GmsBarcodeScannerOptions অবজেক্ট তৈরি করুন:

    Kotlin

    val options = GmsBarcodeScannerOptions.Builder()
       .setBarcodeFormats(
           Barcode.FORMAT_QR_CODE,
           Barcode.FORMAT_AZTEC)
       .build()

    Java

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

    Java

    GmsBarcodeScannerOptions options = new GmsBarcodeScannerOptions.Builder()
       .setBarcodeFormats(...)
       .enableAutoZoom() // available on 16.1.0 and higher
       .build();
  2. কোডের উদাহরণে দেখানো GmsBarcodeScanner-এর একটি ইনস্ট্যান্স পান, যেমন:

    Kotlin

    val scanner = GmsBarcodeScanning.getClient(this)
    // Or with a configured options
    // val scanner = GmsBarcodeScanning.getClient(this, options)

    Java

    GmsBarcodeScanner scanner = GmsBarcodeScanning.getClient(this);
    // Or with a configured options
    // GmsBarcodeScanner scanner = GmsBarcodeScanning.getClient(context, options);
  3. startScan() নম্বরে কল করে কোড স্ক্যান করার অনুরোধ জানান।

    Kotlin

    scanner.startScan()
       .addOnSuccessListener { barcode ->
           // Task completed successfully
       }
       .addOnCanceledListener {
           // Task canceled
       }
       .addOnFailureListener { e ->
           // Task failed with an exception
       }

    Java

    scanner
       .startScan()
       .addOnSuccessListener(
           barcode -> {
             // Task completed successfully
           })
       .addOnCanceledListener(
           () -> {
             // Task canceled
           })
       .addOnFailureListener(
           e -> {
             // Task failed with an exception
           });
  4. ফলাফল হিসেবে পাওয়া Barcode ম্যানেজ করুন।

    Kotlin

    val rawValue: String? = barcode.rawValue

    Java

    String rawValue = barcode.getRawValue();