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

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

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

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

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

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

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

لغة Kotlin DSL

بناء

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

إنشاء

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

بناء

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

رائع DSL

إنشاء

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

عرض معلومات الترخيص

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