تضمين إشعارات البرامج المفتوحة المصدر

تتضمّن "خدمات Google Play" أحيانًا مكتبات مفتوحة المصدر أو تعتمد عليها. للالتزام بمتطلبات ترخيص المكتبات المفتوحة المصدر، تتحمّل أنت بصفتك مطوِّرًا مسؤولية عرض الإشعارات بشكل مناسب للمكتبات المفتوحة المصدر التي يستخدمها تطبيقك.

تتضمن "خدمات Google Play" مجموعة من الأدوات المصمَّمة لمنح المطوّرين طريقة أسهل للتعبير عن إشعارات البرامج المفتوحة المصدر الخاصة بالمكتبات المستخدمة في تطبيقاتهم. وإحدى هذه الأدوات هي مكوّن إضافي من Gradle يجمع بنود الترخيص من المكتبات المضمّنة، كما هو موضح في ملفات POM، وينشئ نشاطًا يمكن استخدامه لعرض هذه البنود. تعرَّف على المزيد من المعلومات حول كيفية عثور الأداة على معلومات الترخيص والحصول على حِزمها.

إضافة المكوّن الإضافي Gradle

في ملف الإصدار على مستوى الجذر، نفِّذ ما يلي:

  1. ضمِّن مستودع Google Maven.
  2. يمكنك إضافة المكوّن الإضافي oss-licenses إلى العناصر التابعة.

يعرض مقتطف الرمز التالي الخطوات التالية:

لغة Kotlin DSL

build.gradle.kts

buildscript {
  repositories {
    ...
    google()  // maven { url("https://maven.google.com") } for Gradle <= 3
  }
  dependencies {
    ...
    classpath("com.google.android.gms:oss-licenses-plugin:0.10.6")
  }
}

DSL رائعة

build.gradle

buildscript {
  repositories {
    ...
    google()  // maven { url "https://maven.google.com" } for Gradle <= 3
  }
  dependencies {
    ...
    classpath 'com.google.android.gms:oss-licenses-plugin:0.10.6'
  }
}

في ملف التصميم على مستوى التطبيق، طبِّق المكوِّن الإضافي عن طريق إضافة السطر التالي ضمن التعريف الحالي للمكوّن الإضافي com.android.application في أعلى الملف:

لغة Kotlin DSL

app/build.gradle.kts

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

DSL رائعة

app/build.gradle

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

يمكنك عرض الرمز لهذا المكون الإضافي على GitHub.

إضافة المكتبة إلى تطبيقك

في القسم dependencies من ملف الإصدار على مستوى التطبيق، أضِف اعتمادية إلى مكتبة oss-licenses:

لغة Kotlin DSL

build.gradle.kts

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

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

عند إطلاق هذا النشاط، يعرض قائمة بمكتبات مفتوحة المصدر تم تجميعها في تطبيقك، بما في ذلك المكتبات التي تشكل جزءًا من خدمات Google Play، كما هو موضّح في الشكل 1. يمكن للمستخدمين النقر فوق اسم المكتبة لعرض معلومات الترخيص الإضافية لتلك المكتبة.

عرض على شكل قائمة مع كل عنصر يحتوي على اسم مكتبة مفتوحة المصدر

الشكل 1. يعرض نشاط قائمة التراخيص قائمة قابلة للاختيار للمكتبات المفتوحة المصدر التي يستخدمها التطبيق.

ضبط عنوان النشاط

يحمل النشاط المعروض عنوان "تراخيص البرامج المفتوحة المصدر" تلقائيًا. يمكنك تخصيص عنوان النشاط من خلال استدعاء 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 مرتبطة بشكل مباشر بالتطبيق، يعالج المكوّن الإضافي كل عنصر من عناصر <licenses> ويضمّن الرابط والعنوان لكل ترخيص في مادة عرض Android مضمّنة في تطبيقك.