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

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

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

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

في pluginManagement من إعدادات مشروعك، اتّبِع الخطوات التالية:

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

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

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

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

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.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.

إضافة مكتبة play-services-oss-licenses إلى تطبيقك

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

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