SDK های سرویسهای گوگل پلی گاهی اوقات شامل کتابخانههای متنباز هستند یا به آنها وابستهاند. برای رعایت الزامات مجوز کتابخانههای متنباز، شما به عنوان یک توسعهدهنده مسئول نمایش مناسب اعلانهای مربوط به کتابخانههای متنبازی هستید که برنامه شما از آنها استفاده میکند.
Google Play services includes a set of tools designed to give developers an easier way to express the open source software (OSS) notices of libraries used in their apps. The oss-licenses-plugin and the Google Play services oss-licenses SDK collect license terms from included libraries, as declared in their POM files, and create an activity that can be used to display these terms. Learn more about how the tool finds and packages license information .
افزونه Gradle را اضافه کنید
در تنظیمات پروژه خود در pluginManagement ، موارد زیر را انجام دهید:
- مخزن Google Maven را اضافه کنید.
- مشکل افزونهی
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.12.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.12.0") } } } }
در فایل ساخت سطح برنامه خود، افزونه را با اضافه کردن خط زیر در زیر تعریف افزونه 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.5.1")
گرووی دیاسال
ساخت.gradle
implementation 'com.google.android.gms:play-services-oss-licenses:17.5.1'
نمایش اطلاعات مجوز
وقتی برنامه شما ساخته میشود، افزونه 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 استفاده میکنند
برای برنامههایی که از 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 استفاده میکنند
برای برنامههایی که از تمهای 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-06-17 بهوقت ساعت هماهنگ جهانی.