Los Servicios de Google Play a veces incluyen bibliotecas de código abierto o dependen de ellas. Para cumplir con los requisitos de licencia de las bibliotecas de código abierto, como desarrollador, eres responsable de mostrar de forma adecuada los avisos para las bibliotecas de código abierto que usa tu app.
Los Servicios de Google Play incluyen un conjunto de herramientas diseñadas para que los desarrolladores puedan expresar de manera más sencilla los avisos de software de código abierto de las bibliotecas que se usan en sus apps. Una de estas herramientas es un complemento de Gradle que recopila los términos de la licencia de las bibliotecas incluidas, como se declara en los archivos POM, y crea una actividad que se puede usar para mostrar estos términos. Obtén más información sobre cómo la herramienta encuentra y empaqueta la información de la licencia.
Agrega el complemento de Gradle
En tu archivo de compilación de nivel de raíz, haz lo siguiente:
- Incluye el repositorio Maven de Google.
- Agrega el complemento
oss-licenses
a tus dependencias.
En el siguiente fragmento de código, se muestran estos pasos:
DSL de Kotlin
build.gradle.kts.
buildscript { repositories { ... google() // maven { url("https://maven.google.com") } for Gradle <= 3 } dependencies { ... classpath("com.google.android.gms:oss-licenses-plugin:0.10.6") } }
DSL de Groovy
build.gradle
buildscript { repositories { ... google() // maven { url "https://maven.google.com" } for Gradle <= 3 } dependencies { ... classpath 'com.google.android.gms:oss-licenses-plugin:0.10.6' } }
En el archivo de compilación de nivel de app, aplica el complemento. Para ello, agrega la siguiente línea debajo de la declaración existente del complemento com.android.application
en la parte superior del archivo:
DSL de Kotlin
app/build.gradle.kt
plugins { id("com.android.application") id("com.google.android.gms.oss-licenses-plugin") }
DSL de Groovy
app/build.gradle
plugins { id 'com.android.application' id 'com.google.android.gms.oss-licenses-plugin' }
Puedes ver el código de este complemento en GitHub.
Agrega la biblioteca a tu app
En la sección dependencies
de tu archivo de compilación de nivel de app, agrega una dependencia en la biblioteca de oss-licenses
:
DSL de Kotlin
build.gradle.kts.
implementation("com.google.android.gms:play-services-oss-licenses:17.0.0")
DSL de Groovy
build.gradle
implementation 'com.google.android.gms:play-services-oss-licenses:17.0.0'
Mostrar información de la licencia
Cuando se compila tu app, el complemento Gradle procesa las licencias y las agrega a los recursos de la app. Para mostrar fácilmente la licencia, puedes iniciar una actividad que proporcione la biblioteca de play-services-oss-licenses
en un punto adecuado de tu app, como se muestra en el siguiente fragmento de código:
Kotlin
import com.google.android.gms.oss.licenses.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.OssLicensesMenuActivity; ... // When the user selects an option to see the licenses: startActivity(new Intent(this, OssLicensesMenuActivity.class));
Cuando se inicia, esta actividad muestra una lista de bibliotecas de código abierto que se compilan en tu app, incluidas las bibliotecas que forman parte de los Servicios de Google Play, como se muestra en la figura 1. Los usuarios pueden presionar el nombre de una biblioteca para ver información adicional sobre la licencia de esa biblioteca.
Figura 1: La actividad del menú de licencias muestra una lista seleccionable de bibliotecas de código abierto que usa una app.
Cómo establecer el título de la actividad
De forma predeterminada, la actividad que se muestra tiene el título "Licencias de código abierto". Puedes llamar a setActivityTitle()
para personalizar el título de la actividad, como se muestra en el siguiente fragmento de código:
Kotlin
OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title))
Java
OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title));
Cómo aplicar un tema a la actividad
Puedes aplicar un tema a la actividad para que coincida con el tema que se usa en las otras actividades de tu app. Para ello, incluye la actividad de la licencia de código abierto en un elemento <activity>
dentro del archivo de manifiesto de tu app, como se muestra en el siguiente fragmento de código:
<application android:theme="@style/AppTheme" ...> <activity android:name="com.google.android.gms.oss.licenses.OssLicensesMenuActivity" android:theme="@style/AppTheme" /> <activity android:name="com.google.android.gms.oss.licenses.OssLicensesActivity" android:theme="@style/AppTheme" /> </application>
Cómo se determina la lista de licencias
En el momento de la compilación, el complemento de Gradle escanea las dependencias del POM del proyecto de tu app. Cuando existe un POM de Maven para una dependencia directa de la app, el complemento procesa cada elemento <licenses>
y, luego, incorpora el vínculo y el título de cada licencia en un elemento de Android incluido en tu app.