شامل اعلامیه های منبع باز

SDK های سرویس‌های گوگل پلی گاهی اوقات شامل کتابخانه‌های متن‌باز هستند یا به آنها وابسته‌اند. برای رعایت الزامات مجوز کتابخانه‌های متن‌باز، شما به عنوان یک توسعه‌دهنده مسئول نمایش مناسب اعلان‌های مربوط به کتابخانه‌های متن‌بازی هستید که برنامه شما از آنها استفاده می‌کند.

سرویس‌های گوگل پلی شامل مجموعه‌ای از ابزارها هستند که برای ارائه روشی آسان‌تر به توسعه‌دهندگان جهت بیان اطلاعیه‌های نرم‌افزار متن‌باز (OSS) در مورد کتابخانه‌های مورد استفاده در برنامه‌هایشان طراحی شده‌اند. افزونه oss-licenses-plugin و SDK سرویس‌های گوگل پلی oss-licenses، شرایط مجوز را از کتابخانه‌های موجود، همانطور که در فایل‌های POM آنها اعلام شده است، جمع‌آوری می‌کنند و فعالیتی ایجاد می‌کنند که می‌تواند برای نمایش این شرایط استفاده شود. درباره نحوه یافتن و بسته‌بندی اطلاعات مجوز توسط این ابزار بیشتر بدانید.

افزونه Gradle را اضافه کنید

در تنظیمات پروژه خود در pluginManagement ، موارد زیر را انجام دهید:

  1. مخزن Google Maven را اضافه کنید.
  2. مشکل افزونه‌ی oss-licenses را در PluginManagement حل کنید.

قطعه کد زیر این مراحل را نشان می‌دهد:

کاتلین DSL

تنظیمات.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.10")
      }
    }
  }
}

گرووی دی‌اس‌ال

ساخت.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.10")
      }
    }
  }
}

در فایل ساخت سطح برنامه خود، افزونه را با اضافه کردن خط زیر در زیر تعریف افزونه com.android.application موجود در بالای فایل، اعمال کنید:

کاتلین DSL

app/build.gradle.kts

plugins {
    id("com.android.application")
    id("com.google.android.gms.oss-licenses-plugin")
}

گرووی دی‌اس‌ال

برنامه/ساخت.gradle

plugins {
    id 'com.android.application'
    id 'com.google.android.gms.oss-licenses-plugin'
}

می‌توانید کد این افزونه را در گیت‌هاب مشاهده کنید .

کتابخانه play-services-oss-licenses را به برنامه خود اضافه کنید.

در بخش dependencies فایل ساخت سطح برنامه خود، یک وابستگی به کتابخانه play-services-oss-licenses اضافه کنید:

کاتلین DSL

ساخت.gradle.kts

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

گرووی دی‌اس‌ال

ساخت.gradle

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

نمایش اطلاعات مجوز

وقتی برنامه شما ساخته می‌شود، افزونه Gradle مجوزها را پردازش کرده و آنها را به منابع برنامه شما اضافه می‌کند. برای نمایش آسان مجوز، می‌توانید یک activity که توسط کتابخانه play-services-oss-licenses ارائه می‌شود را در نقطه مناسبی از برنامه خود، همانطور که در قطعه کد زیر نشان داده شده است، راه‌اندازی کنید:

کاتلین

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));

وقتی اکتیویتی اجرا می‌شود، فهرستی از کتابخانه‌های متن‌باز که در برنامه شما کامپایل شده‌اند، از جمله کتابخانه‌های مورد استفاده برنامه، همانطور که در شکل ۱ نشان داده شده است، نمایش داده می‌شود. کاربران می‌توانند روی نام یک کتابخانه ضربه بزنند تا اطلاعات مجوز اضافی برای آن کتابخانه را مشاهده کنند.

نمای فهرستی با هر عنصر حاوی نام یک کتابخانه متن‌باز

شکل ۱. فعالیت منوی مجوزها، فهرستی قابل انتخاب از کتابخانه‌های متن‌باز مورد استفاده یک برنامه را نشان می‌دهد.

عنوان فعالیت را تنظیم کنید

به طور پیش‌فرض، عنوان اکتیویتی نمایش داده شده "مجوزهای متن‌باز" است. می‌توانید عنوان اکتیویتی را با فراخوانی setActivityTitle() سفارشی کنید، همانطور که در قطعه کد زیر نشان داده شده است:

کاتلین

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

جاوا

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

اعمال یک تم به فعالیت

شما می‌توانید یک تم را به اکتیویتی اعمال کنید تا با تم مورد استفاده در سایر اکتیویتی‌های برنامه شما مطابقت داشته باشد. برای انجام این کار، اکتیویتی دارای مجوز متن‌باز را در یک عنصر <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 پروژه برنامه شما را اسکن می‌کند. وقتی یک POM Maven برای یک وابستگی مستقیم برنامه وجود دارد، افزونه هر عنصر <licenses> را پردازش می‌کند و لینک و عنوان هر مجوز را در یک دارایی اندروید که همراه برنامه شما است، جاسازی می‌کند.