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

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

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

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

في ملف الإنشاء على مستوى الجذر، اتّبِع الخطوات التالية:

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

يوضِّح مقتطف الرمز التالي هذه الخطوات:

لغة Kotlin المحددة من جهة العميل

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

Groovy 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 المحددة من جهة العميل

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.

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

في قسم dependencies من ملف الإنشاء على مستوى التطبيق، أضِف تبعية على مكتبة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));

عند تشغيل هذا النشاط، يعرض قائمة بالمكتبات المفتوحة المصدر التي يتم compiling دمجها في تطبيقك، بما في ذلك المكتبات التي تشكّل جزءًا من خدمات 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 المضمّنة في تطبيقك.