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

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

Google Play की सेवाओं में, टूल का एक सेट शामिल है. इसे इस तरह डिज़ाइन किया गया है कि डेवलपर अपने ऐप्लिकेशन में इस्तेमाल की जाने वाली लाइब्रेरी के ओपन सोर्स सॉफ़्टवेयर (ओएसएस) नोटिस आसानी से दिखा सकें. The 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.12.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.12.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.1")

Groovy DSL

build.gradle

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

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

जब आपका ऐप्लिकेशन बनता है, तब 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()` को कॉल करके, गतिविधि के टाइटल को पसंद के मुताबिक बनाया जा सकता है. इसके बारे में, नीचे दिए गए कोड स्निपेट में बताया गया है: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));

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

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