গুগল কোড স্ক্যানার (কেবল অ্যান্ড্রয়েড), গুগল কোড স্ক্যানার (কেবল অ্যান্ড্রয়েড), গুগল কোড স্ক্যানার (কেবল অ্যান্ড্রয়েড)

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

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

১৬.১.০ সংস্করণ থেকে শুরু করে, আপনি অটো-জুম সক্ষম করতে পারেন যাতে গুগল কোড স্ক্যানার ক্যামেরা থেকে অনেক দূরে থাকা বারকোডগুলি স্বয়ংক্রিয়ভাবে স্ক্যান করতে পারে। ব্যবহারকারীরা যখন তাদের ডিভাইসগুলিকে বারকোডের দিকে নির্দেশ করে, তখন স্ক্যানার বুদ্ধিমত্তার সাথে বারকোড সনাক্ত করে জুম ইন করবে। এটি ম্যানুয়াল জুম সমন্বয়ের প্রয়োজনীয়তা দূর করে, বারকোড স্ক্যানিং দ্রুত, আরও নির্ভুল এবং আরও অ্যাক্সেসযোগ্য করে তোলে (ভিডিও ২ দেখুন)।

ভিডিও ১. গুগল কোড স্ক্যানার ইন্টিগ্রেশন ভিডিও ২। অটো-জুম প্রভাব

আরও জটিল ব্যবহারের ক্ষেত্রে যেখানে একটি কাস্টম 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 services নির্ভরতা যোগ করুন, যা সাধারণত app/build.gradle হয়:

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

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

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

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

একটি কোড স্ক্যান করুন

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

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

    ডিফল্টরূপে, অটো-জুম বন্ধ থাকে। ১৬.১.০ সংস্করণ থেকে অটো-জুম কার্যকারিতা সক্ষম করতে, নিম্নলিখিত কোড উদাহরণে দেখানো হিসাবে enableAutoZoom() কল করুন।

    কোটলিন

    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();
  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. ফলাফল প্রাপ্ত Barcode পরিচালনা করুন।

    কোটলিন

    val rawValue: String? = barcode.rawValue

    জাভা

    String rawValue = barcode.getRawValue();