Les SDK des services Google Play incluent parfois des bibliothèques Open Source ou en dépendent. Pour respecter les exigences de licence des bibliothèques Open Source, vous, en tant que développeur, êtes responsable de l'affichage approprié des avis concernant les bibliothèques Open Source utilisées par votre application.
Les services Google Play incluent un ensemble d'outils conçus pour permettre aux développeurs d'exprimer plus facilement les avis sur les logiciels Open Source (OSS) des bibliothèques utilisées dans leurs applications. Le oss-licenses-plugin et le SDK oss-licenses des services Google Play collectent les conditions de licence des bibliothèques incluses, telles qu'elles sont déclarées dans leurs fichiers POM, et créent une activité qui peut être utilisée pour afficher ces conditions. Découvrez comment
l'outil trouve et package les informations de licence.
Ajouter le plug-in Gradle
Dans le pluginManagement des paramètres de votre projet, procédez comme suit :
- Incluez le dépôt Maven de Google.
- Résolvez le plug-in
oss-licensesdans lePluginManagement.
L'extrait de code suivant illustre ces étapes :
DSL Kotlin
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.11.0") } } } }
DSL Groovy
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.11.0") } } } }
Dans le fichier de compilation au niveau de l'application, appliquez le plug-in en ajoutant la ligne suivante sous la déclaration existante du plug-in com.android.application en haut du fichier :
DSL Kotlin
app/build.gradle.kts
plugins { id("com.android.application") id("com.google.android.gms.oss-licenses-plugin") }
DSL Groovy
app/build.gradle
plugins { id 'com.android.application' id 'com.google.android.gms.oss-licenses-plugin' }
Vous pouvez consulter le code de ce plug-in sur GitHub.
Ajouter la bibliothèque play-services-oss-licenses à votre application
Dans la section dependencies du fichier de compilation au niveau de l'application, ajoutez une dépendance à la bibliothèque play-services-oss-licenses :
DSL Kotlin
build.gradle.kts
implementation("com.google.android.gms:play-services-oss-licenses:17.5.0")
DSL Groovy
build.gradle
implementation 'com.google.android.gms:play-services-oss-licenses:17.5.0'
Afficher les informations de licence
Lorsque votre application est compilée, le plug-in Gradle traite les licences et les ajoute aux ressources de votre application. Pour afficher facilement la licence, vous pouvez lancer une activité fournie par la bibliothèque play-services-oss-licenses à un moment approprié de votre application, comme indiqué dans l'extrait de code suivant :
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))
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));
Lorsque l'activité est lancée, elle affiche une liste des bibliothèques Open Source compilées dans votre application, y compris les bibliothèques utilisées par l'application, comme illustré dans la figure 1. Les utilisateurs peuvent appuyer sur le nom d'une bibliothèque pour afficher des informations de licence supplémentaires.
Figure 1. L'activité du menu des licences affiche une liste sélectionnable de bibliothèques Open Source utilisées par une application.
Définir le titre de l'activité
Par défaut, l'activité affichée porte le titre "Licences Open Source". Vous pouvez
personnaliser le titre de l'activité en appelant
setActivityTitle(),
comme indiqué dans l'extrait de code suivant :
Kotlin
OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title))
Java
OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title));
Appliquer un thème à l'activité
Il existe différentes manières d'appliquer un thème à OssLicensesMenuActivity, selon que votre application utilise des thèmes Material 3 ou basés sur XML.
Applications qui utilisent Material 3
Pour les applications qui utilisent Material 3, vous pouvez appeler la
setTheme()
méthode pour appliquer un thème personnalisé à l'activité, comme indiqué dans l'extrait de code
suivant :
Kotlin
import com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity ... OssLicensesMenuActivity.setTheme(lightColorScheme, darkColorScheme, typography) startActivity(Intent(this, OssLicensesMenuActivity::class.java))
Java
import com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity; ... OssLicensesMenuActivity.setTheme(lightColorScheme, darkColorScheme, typography); startActivity(new Intent(this, OssLicensesMenuActivity.class));
Applications qui utilisent des thèmes XML
Pour les applications qui utilisent des thèmes XML, vous pouvez appliquer un thème à l'activité dans le fichier manifeste afin qu'il corresponde au thème utilisé dans les autres activités de votre application. Pour ce faire,
incluez l'activité de licence Open Source dans un élément <activity> du fichier manifeste de votre
application, comme indiqué dans l'extrait de code suivant :
<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>
Déterminer la liste des licences
Lors de la compilation, le plug-in Gradle analyse les dépendances POM du projet de votre application. Lorsqu'un POM Maven existe pour une dépendance directe de l'application, le plug-in
traite chaque <licenses>
élément et intègre le lien et le titre de chaque licence dans un composant Android qui est
inclus dans votre application.