ওপেন সোর্স বিজ্ঞপ্তি অন্তর্ভুক্ত করুন

Google Play পরিষেবা SDK-তে কখনও কখনও ওপেন সোর্স লাইব্রেরি অন্তর্ভুক্ত থাকে বা তার উপর নির্ভর করে। ওপেন সোর্স লাইব্রেরির লাইসেন্স সংক্রান্ত প্রয়োজনীয়তা মেনে চলার জন্য, ডেভেলপার হিসেবে আপনার অ্যাপ যেসব ওপেন সোর্স লাইব্রেরি ব্যবহার করে, সেগুলির জন্য বিজ্ঞপ্তি সঠিকভাবে দেখানোর দায়িত্ব আপনার।

Google Play পরিষেবায় এমন কিছু টুল আছে যা ডেভেলপারদের জন্য তাদের অ্যাপে ব্যবহৃত লাইব্রেরির ওপেন সোর্স সফ্টওয়্যার (OSS) বিজ্ঞপ্তি প্রকাশ করার একটি সহজ উপায় প্রদান করে। oss-licenses-plugin এবং Google Play পরিষেবা oss-licenses SDK অন্তর্ভুক্ত লাইব্রেরি থেকে লাইসেন্সের শর্তাবলী সংগ্রহ করে, যেমনটি তাদের POM ফাইলে ঘোষণা করা হয়েছে এবং একটি অ্যাক্টিভিটি তৈরি করে যা এই শর্তাবলী প্রদর্শন করতে ব্যবহার করা যেতে পারে। টুলটি কীভাবে লাইসেন্সের তথ্য খুঁজে বের করে এবং প্যাকেজ করে সেই সম্পর্কে আরও জানুন।

Gradle প্লাগ-ইন যোগ করুন

আপনার প্রোজেক্ট সেটিংসের pluginManagement-এ, নিম্নলিখিত ধাপগুলি অনুসরণ করুন:

  1. Google Maven রিপোজিটরি অন্তর্ভুক্ত করুন।
  2. PluginManagement-এ oss-licenses প্লাগ-ইন সংক্রান্ত সমস্যার সমাধান করুন।

নিম্নলিখিত কোড স্নিপেট এইসব ধাপ দেখায়:

Kotlin DSL

settings.gradle.kts

pluginManagement {
  repositories {
    ...
    google()
  }
  resolutionStrategy {
    eachPlugin {
      if (requested.id.id == "com.google.android.gms.oss-licenses-plugin") {
        useModule("com.google.android.gms:oss-licenses-plugin:0.13.0")
      }
    }
  }
}

Groovy DSL

build.gradle

pluginManagement {
  repositories {
    ...
    google()
  }
  resolutionStrategy {
    eachPlugin {
      if (requested.id.id == "com.google.android.gms.oss-licenses-plugin") {
        useModule("com.google.android.gms:oss-licenses-plugin:0.13.0")
      }
    }
  }
}

আপনার অ্যাপ-লেভেল বিল্ড ফাইলে, ফাইলের একদম উপরে com.android.application প্লাগ-ইনের আগে থেকে থাকা ঘোষণার নিচে নিম্নলিখিত লাইন যোগ করে প্লাগ-ইন প্রয়োগ করুন:

Kotlin DSL

app/build.gradle.kts

plugins {
    id("com.android.application")
    id("com.google.android.gms.oss-licenses-plugin")
}

Groovy DSL

app/build.gradle

plugins {
    id 'com.android.application'
    id 'com.google.android.gms.oss-licenses-plugin'
}

আপনি GitHub-এ এই প্লাগ-ইনের জন্য কোড দেখতে পারবেন।

আপনার অ্যাপে play-services-oss-licenses লাইব্রেরি যোগ করুন

আপনার অ্যাপ-লেভেল বিল্ড ফাইলের dependencies বিভাগে, play-services-oss-licenses লাইব্রেরির উপর একটি ডিপেন্ডেন্সি যোগ করুন:

Kotlin DSL

build.gradle.kts

implementation("com.google.android.gms:play-services-oss-licenses:17.5.3")

Groovy DSL

build.gradle

implementation 'com.google.android.gms:play-services-oss-licenses:17.5.3'

লাইসেন্স সংক্রান্ত তথ্য দেখান

আপনার অ্যাপ তৈরি করার সময়, Gradle প্লাগ-ইন লাইসেন্স প্রসেস করে এবং আপনার অ্যাপের রিসোর্সে সেগুলি যোগ করে। সহজে লাইসেন্স দেখাতে, আপনি play-services-oss-licenses লাইব্রেরির মাধ্যমে প্রদান করা অ্যাক্টিভিটি আপনার অ্যাপের উপযুক্ত পয়েন্টে লঞ্চ করতে পারেন, যেমনটি নিম্নলিখিত কোড স্নিপেটে দেখানো হয়েছে:

Kotlin

import com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity
...

// When the user selects an option to see the licenses:
startActivity(Intent(this, OssLicensesMenuActivity::class.java))

Java

import com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity;
...

// When the user selects an option to see the licenses:
startActivity(new Intent(this, OssLicensesMenuActivity.class));

অ্যাক্টিভিটি চালু হলে, এটি আপনার অ্যাপে কম্পাইল করা ওপেন সোর্স লাইব্রেরির একটি তালিকা দেখায়, যার মধ্যে অ্যাপের ব্যবহার করা লাইব্রেরিও রয়েছে, যেমনটি চিত্র ১-এ দেখানো হয়েছে। ব্যবহারকারীরা কোনও লাইব্রেরির অতিরিক্ত লাইসেন্স সংক্রান্ত তথ্য দেখতে সেই লাইব্রেরির নামের উপর ট্যাপ করতে পারেন।

তালিকা ভিউতে প্রতিটি এলিমেন্টে ওপেন সোর্স লাইব্রেরির নাম থাকে

ছবি ১. লাইসেন্স মেনু অ্যাক্টিভিটি থেকে কোনও অ্যাপ ব্যবহার করে এমন ওপেন সোর্স লাইব্রেরির বেছে নেওয়ার মতো তালিকা দেখা যায়।

অ্যাক্টিভিটির নাম সেট করুন

ডিফল্ট হিসেবে, দেখানো অ্যাক্টিভিটির শীর্ষক হল "ওপেন সোর্স লাইসেন্স"। আপনি setActivityTitle() কল করে অ্যাক্টিভিটির শীর্ষক কাস্টমাইজ করতে পারবেন, যেমনটি নিম্নলিখিত কোড স্নিপেটে দেখানো হয়েছে:

Kotlin

OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title))

Java

OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title));

অ্যাক্টিভিটিতে থিম প্রয়োগ করুন

আপনার অ্যাপ Material 3 বা XML-ভিত্তিক থিম ব্যবহার করে কিনা তার উপর নির্ভর করে, OssLicensesMenuActivity-এ থিম প্রয়োগ করার বিভিন্ন উপায় রয়েছে।

Material 3 ব্যবহার করে এমন অ্যাপ

Material 3 ব্যবহার করে এমন অ্যাপের জন্য, আপনি setTheme() মেথড কল করে অ্যাক্টিভিটিতে কাস্টম থিম প্রয়োগ করতে পারেন, যেমনটি নিম্নলিখিত কোড স্নিপেটে দেখানো হয়েছে:

Kotlin

import com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity
...

OssLicensesMenuActivity.setTheme(lightColorScheme, darkColorScheme, typography)
startActivity(Intent(this, OssLicensesMenuActivity::class.java))

Java

import com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity;
...

OssLicensesMenuActivity.setTheme(lightColorScheme, darkColorScheme, typography);
startActivity(new Intent(this, OssLicensesMenuActivity.class));

XML থিম ব্যবহার করে এমন অ্যাপ

XML থিম ব্যবহার করে এমন অ্যাপের জন্য, আপনি ম্যানিফেস্টে অ্যাক্টিভিটিতে একটি থিম প্রয়োগ করতে পারেন আপনার অ্যাপের অন্যান্য অ্যাক্টিভিটিতে ব্যবহৃত থিমের সাথে মিল করতে। এটি করতে, আপনার অ্যাপের ম্যানিফেস্ট ফাইলের মধ্যে <activity> এলিমেন্টে ওপেন সোর্স লাইসেন্স অ্যাক্টিভিটি অন্তর্ভুক্ত করুন, যেমনটি নিম্নলিখিত কোড স্নিপেটে দেখানো হয়েছে:

<application android:theme="@style/AppTheme" ...>
    <activity
        android:name="com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity"
        tools:replace="android:theme"
        android:theme="@style/AppTheme" />
</application>

লাইসেন্সের তালিকা কীভাবে নির্ধারণ করা হয়

কম্পাইল করার সময়, Gradle প্লাগ-ইন আপনার অ্যাপের প্রোজেক্টের POM ডিপেন্ডেন্সি স্ক্যান করে। অ্যাপের সরাসরি ডিপেন্ডেন্সির জন্য Maven POM থাকলে, প্লাগ-ইন প্রতিটি <licenses> এলিমেন্ট প্রসেস করে এবং আপনার অ্যাপের সাথে অন্তর্ভুক্ত Android অ্যাসেটে প্রতিটি লাইসেন্সের লিঙ্ক ও শীর্ষক এম্বেড করে।