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

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

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

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

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

अपनी ऐप्लिकेशन-लेवल की बिल्ड फ़ाइल में, प्लग इन लागू करें. इसके लिए, फ़ाइल के सबसे ऊपर मौजूद 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.1.0")

Groovy DSL

build.gradle

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

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

जब आपका ऐप्लिकेशन बनता है, तो Gradle प्लग इन लाइसेंस को प्रोसेस करता है और उन्हें आपके ऐप्लिकेशन के संसाधनों में जोड़ता है. लाइसेंस को आसानी से दिखाने के लिए, अपने ऐप्लिकेशन में सही जगह पर play-services-oss-licenses लाइब्रेरी से मिली गतिविधि को लॉन्च किया जा सकता है. इस बारे में नीचे दिए गए कोड स्निपेट में बताया गया है:

Kotlin

import com.google.android.gms.oss.licenses.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.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));

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

ऐप्लिकेशन की अन्य गतिविधियों में इस्तेमाल की गई थीम से मैच करने के लिए, गतिविधि पर कोई थीम लागू की जा सकती है. ऐसा करने के लिए, अपने ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल में <activity> एलिमेंट में ओपन सोर्स लाइसेंस ऐक्टिविटी शामिल करें. इस बारे में यहां दिए गए कोड स्निपेट में बताया गया है:

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

लाइसेंस की सूची कैसे तय की जाती है

कंपाइल करने के समय, Gradle प्लग इन आपके ऐप्लिकेशन के प्रोजेक्ट की POM डिपेंडेंसी को स्कैन करता है. जब ऐप्लिकेशन की सीधी डिपेंडेंसी के लिए Maven POM मौजूद होता है, तो प्लग इन हर <licenses> एलिमेंट को प्रोसेस करता है. साथ ही, हर लाइसेंस के लिंक और टाइटल को, आपके ऐप्लिकेशन में शामिल Android ऐसेट में एम्बेड करता है.