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

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

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

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

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

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

আপনার কোনো প্রশ্ন থাকলে, কোনো ত্রুটি জানাতে চাইলে, বা সাহায্যের প্রয়োজন হলে, এমএল কিট কমিউনিটি পেজটি দেখুন।

শুরু করার আগে

আপনার অ্যাপটি প্রস্তুত করতে, নিচের বিভাগগুলিতে দেওয়া ধাপগুলি সম্পূর্ণ করুন।

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

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

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

    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>
    

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

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

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

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

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

    আপনি যদি জানেন কোন বারকোড ফরম্যাটগুলো পড়তে চান, তাহলে শুধু সেই ফরম্যাটগুলো শনাক্ত করার জন্য বারকোড ডিটেক্টরকে কনফিগার করে এর গতি বাড়াতে পারেন। উদাহরণস্বরূপ, শুধু অ্যাজটেক কোড এবং কিউআর কোড শনাক্ত করতে, নিচের উদাহরণের মতো করে একটি 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();

    ডিফল্টরূপে, অটো-জুম বন্ধ থাকে। সংস্করণ 16.1.0 থেকে অটো-জুম কার্যকারিতা সক্রিয় করতে, নিম্নলিখিত কোড উদাহরণে দেখানো অনুযায়ী 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();