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

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

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

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

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

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

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

Kotlin DSL

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

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

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

Kotlin DSL

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 DSL

build.gradle.kts

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

Groovy DSL

build.gradle

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

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

عند إنشاء تطبيقك، يعالج المكوّن الإضافي Gradle التراخيص ويضيفها إلى موارد تطبيقك. لعرض الترخيص بسهولة، يمكنك تشغيل نشاط توفّره مكتبة play-services-oss-licenses في نقطة مناسبة في تطبيقك، كما هو موضّح في مقتطف الرمز التالي:

Kotlin

import com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity
...

// When the user selects an option to see the licenses:
startActivity(Intent(this, OssLicensesMenuActivity::class.java))

جافا

import com.google.android.gms.oss.licenses.v2.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))

جافا

OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title));

تطبيق مظهر على النشاط

تتوفّر طرق مختلفة لتطبيق مظهر على OssLicensesMenuActivity، وذلك حسب ما إذا كان تطبيقك يستخدم Material 3 أو المظاهر المستندة إلى XML.

التطبيقات التي تستخدم Material 3

بالنسبة إلى التطبيقات التي تستخدم Material 3، يمكنك استدعاء طريقة setTheme() لتطبيق مظهر مخصّص على النشاط، كما هو موضّح في مقتطف الرمز التالي:

Kotlin

import com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity
...

OssLicensesMenuActivity.setTheme(lightColorScheme, darkColorScheme, typography)
startActivity(Intent(this, OssLicensesMenuActivity::class.java))

جافا

import com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity;
...

OssLicensesMenuActivity.setTheme(lightColorScheme, darkColorScheme, typography);
startActivity(new Intent(this, OssLicensesMenuActivity.class));

التطبيقات التي تستخدم مظاهر XML

بالنسبة إلى التطبيقات التي تستخدم مظاهر XML، يمكنك تطبيق مظهر على النشاط في ملف البيان لمطابقة المظهر المستخدَم في الأنشطة الأخرى لتطبيقك. لإجراء ذلك، أدرِج نشاط ترخيص البرامج مفتوحة المصدر في عنصر <activity> ضِمن ملف بيان تطبيقك، كما هو موضّح في مقتطف الرمز التالي:

<application android:theme="@style/AppTheme" ...>
    <activity
        android:name="com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity"
        tools:replace="android:theme"
        android:theme="@style/AppTheme" />
</application>

كيفية تحديد قائمة التراخيص

في وقت التجميع، يفحص المكوّن الإضافي Gradle تبعيات POM لمشروع تطبيقك. عندما يكون هناك ملف Maven POM لتبعية مباشرة للتطبيق، يعالج المكوّن الإضافي كل <licenses> عنصر ويضمّن الرابط وعنوان كل ترخيص في مادة عرض Android مضمّنة مع تطبيقك.