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

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

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

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

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

  1. تضمين مستودع Google Maven
  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.13.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.13.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.2")

Groovy DSL

build.gradle

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

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

عند إنشاء تطبيقك، تعالج إضافة 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 مضمّنة مع تطبيقك.