ओपन सोर्स नोटिस शामिल करें

Google Play services SDK टूल में कभी-कभी ओपन सोर्स लाइब्रेरी शामिल होती हैं या ये उन पर निर्भर होते हैं. ओपन सोर्स लाइब्रेरी के लाइसेंस से जुड़ी ज़रूरी शर्तों का पालन करने के लिए, डेवलपर के तौर पर यह आपकी ज़िम्मेदारी है कि आप अपने ऐप्लिकेशन में इस्तेमाल की गई ओपन सोर्स लाइब्रेरी के लिए, सूचनाएं सही तरीके से दिखाएं.

Google Play services में टूल का एक सेट शामिल होता है. इसे डेवलपर को अपने ऐप्लिकेशन में इस्तेमाल की गई लाइब्रेरी के ओपन सोर्स सॉफ़्टवेयर (ओएसएस) की सूचनाएं आसानी से देने का तरीका उपलब्ध कराने के लिए डिज़ाइन किया गया है. oss-licenses-plugin और Google Play services oss-licenses SDK, शामिल की गई लाइब्रेरी से लाइसेंस की शर्तें इकट्ठा करते हैं. ये शर्तें, उनकी POM फ़ाइलों में बताई गई होती हैं. इसके बाद, ये SDK टूल एक activity बनाते हैं, जिसका इस्तेमाल इन शर्तों को दिखाने के लिए किया जा सकता है. इस बारे में ज़्यादा जानें कि यह टूल, लाइसेंस की जानकारी कैसे ढूंढता है और उसे पैकेज कैसे करता है.

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.11.0")
      }
    }
  }
}

ग्रूवी डीएसएल

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.11.0")
      }
    }
  }
}

ऐप्लिकेशन-लेवल की बिल्ड फ़ाइल में, प्लगिन लागू करने के लिए, फ़ाइल में सबसे ऊपर मौजूद com.android.application प्लगिन की मौजूदा जानकारी के नीचे यह लाइन जोड़ें:

Kotlin DSL

app/build.gradle.kts

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

ग्रूवी डीएसएल

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.0")

ग्रूवी डीएसएल

build.gradle

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

लाइसेंस की जानकारी दिखाना

जब आपका ऐप्लिकेशन बनता है, तब 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));

गतिविधि में कोई थीम लागू करना

OssLicensesMenuActivity पर थीम लागू करने के अलग-अलग तरीके हैं. हालांकि, यह इस बात पर निर्भर करता है कि आपका ऐप्लिकेशन, Material 3 या XML पर आधारित थीम का इस्तेमाल करता है या नहीं.

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

एक्सएमएल थीम का इस्तेमाल करने वाले ऐप्लिकेशन

एक्सएमएल थीम का इस्तेमाल करने वाले ऐप्लिकेशन के लिए, ऐक्टिविटी में थीम लागू की जा सकती है. इसके लिए, मेनिफ़ेस्ट में जाकर, ऐप्लिकेशन की अन्य ऐक्टिविटी में इस्तेमाल की गई थीम से मैच करने वाली थीम लागू करें. इसके लिए, अपने ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल में मौजूद <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 ऐसेट में एम्बेड करता है. यह ऐसेट, आपके ऐप्लिकेशन में शामिल होती है.