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

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

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

Gradle प्लगिन जोड़ना

अपने प्रोजेक्ट की सेटिंग के pluginManagement में जाकर, यह तरीका अपनाएं:

  1. Google Maven रिपॉज़िटरी को शामिल करें.
  2. PluginManagement में oss-licenses प्लगिन से जुड़ी समस्या हल करें.

यहां दिए गए कोड स्निपेट में इन चरणों को दिखाया गया है:

Kotlin डीएसएल

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 डीएसएल

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 डीएसएल

build.gradle.kts

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

Groovy DSL

build.gradle

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

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

जब आपका ऐप्लिकेशन बनता है, तब 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 या एक्सएमएल पर आधारित थीम का इस्तेमाल करता है या नहीं.

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