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 ফাইলে, dependencyResolutionManagement ব্লকের মধ্যে Google-এর Maven রিপোজিটরি এবং Maven সেন্ট্রাল রিপোজিটরি অন্তর্ভুক্ত করুন:

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