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

تتضمّن "خدمات 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.0.1")

DSL رائع

build.gradle

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