SDK های سرویسهای گوگل پلی گاهی اوقات شامل کتابخانههای متنباز هستند یا به آنها وابستهاند. برای رعایت الزامات مجوز کتابخانههای متنباز، شما به عنوان یک توسعهدهنده مسئول نمایش مناسب اعلانهای مربوط به کتابخانههای متنبازی هستید که برنامه شما از آنها استفاده میکند.
سرویسهای گوگل پلی شامل مجموعهای از ابزارها است که برای ارائه روشی آسانتر به توسعهدهندگان جهت بیان اطلاعیههای نرمافزار متنباز (OSS) در مورد کتابخانههای مورد استفاده در برنامههایشان طراحی شدهاند. افزونه oss-licenses-plugin و SDK سرویسهای گوگل پلی oss-licenses، شرایط مجوز را از کتابخانههای موجود، همانطور که در فایلهای POM آنها اعلام شده است، جمعآوری میکنند و فعالیتی ایجاد میکنند که میتواند برای نمایش این شرایط استفاده شود. درباره نحوه یافتن و بستهبندی اطلاعات مجوز توسط این ابزار بیشتر بدانید.
در تنظیمات پروژه خود در pluginManagement ، موارد زیر را انجام دهید:
- مخزن Google Maven را اضافه کنید.
- مشکل افزونهی
oss-licensesرا درPluginManagementحل کنید.
قطعه کد زیر این مراحل را نشان میدهد:
تنظیمات.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.11.0") } } } }
ساخت.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.11.0") } } } }
در فایل ساخت سطح برنامه خود، افزونه را با اضافه کردن خط زیر در زیر تعریف افزونه com.android.application موجود در بالای فایل، اعمال کنید:
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 اضافه کنید:
ساخت.gradle.kts
implementation("com.google.android.gms:play-services-oss-licenses:17.5.0")
ساخت.gradle
implementation 'com.google.android.gms:play-services-oss-licenses:17.5.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));
بسته به اینکه برنامه شما از تمهای Material 3 یا XML استفاده میکند، روشهای مختلفی برای اعمال یک تم به OssLicensesMenuActivity وجود دارد.
برای برنامههایی که از Material 3 استفاده میکنند، میتوانید متد setTheme() را برای اعمال یک تم سفارشی به activity فراخوانی کنید، همانطور که در قطعه کد زیر نشان داده شده است:
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 استفاده میکنند، میتوانید یک تم را به اکتیویتی در مانیفست اعمال کنید تا با تم مورد استفاده در سایر اکتیویتیهای برنامه شما مطابقت داشته باشد. برای انجام این کار، اکتیویتی دارای مجوز متنباز را در یک عنصر <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> را پردازش میکند و لینک و عنوان هر مجوز را در یک دارایی اندروید که همراه برنامه شما است، جاسازی میکند.
جز در مواردی که غیر از این ذکر شده باشد،محتوای این صفحه تحت مجوز Creative Commons Attribution 4.0 License است. نمونه کدها نیز دارای مجوز Apache 2.0 License است. برای اطلاع از جزئیات، به خطمشیهای سایت Google Developers مراجعه کنید. جاوا علامت تجاری ثبتشده Oracle و/یا شرکتهای وابسته به آن است.
تاریخ آخرین بهروزرسانی 2026-04-09 بهوقت ساعت هماهنگ جهانی.