Incluir avisos de código abierto

En ocasiones, los Servicios de Google Play incluyen bibliotecas de código abierto, o dependen de ellas. Para cumplir con los requisitos de licencia de las bibliotecas de código abierto, tú, como desarrolladores son responsables de mostrar adecuadamente las notificaciones de la las bibliotecas de origen que usa tu app.

Los Servicios de Google Play incluyen un conjunto de herramientas diseñadas para brindarles a los desarrolladores más sencilla de expresar los avisos de software de código abierto de las bibliotecas utilizadas en sus aplicaciones. Una de estas herramientas es un complemento de Gradle que recopila los términos de las licencias de las bibliotecas incluidas, como se declara en sus archivos POM, y crea un actividad que se puede usar para mostrar estos términos. Más información sobre cómo la herramienta encuentra de Google y de los paquetes.

Agrega el complemento de Gradle

En tu archivo de compilación de nivel raíz, haz lo siguiente:

  1. Incluye el navegador de Google Maven Cloud Storage.
  2. 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, agrega la siguiente línea para aplicar el complemento. en la declaración existente del complemento com.android.application en el parte superior del archivo:

DSL de Kotlin

app/build.gradle.kts

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 esta en GitHub.

Cómo agregar 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 oss-licenses:

DSL de Kotlin

build.gradle.kts

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

DSL de Groovy

build.gradle

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

Mostrar información de licencia

Cuando se compila tu app, el complemento de Gradle procesa las licencias y las agrega a los recursos de tu app. Para mostrar fácilmente la licencia, puedes iniciar una actividad que proporciona la biblioteca play-services-oss-licenses de una manera apropiada en 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 compilarse en tu app, incluidas las bibliotecas que forman parte de Google Play servicios, como se muestra en la figura 1. Los usuarios pueden presionar el nombre de una biblioteca para ver información adicional de la licencia para esa biblioteca.

Vista de lista con cada elemento que contiene el nombre de un código abierto
biblioteca

Figura 1: La actividad del menú de licencias muestra una lista seleccionable de espacios abiertos las bibliotecas de origen que usa una app.

Establece el título de la actividad

De forma predeterminada, la actividad que se muestra tiene el título "Licencias de código abierto". Puedes personalizar el título de la actividad llamando setActivityTitle(), 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 la configuración otras actividades. Para hacerlo, incluye la actividad de la licencia de código abierto en una <activity> dentro del archivo de manifiesto de tu app, como se muestra a continuación 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 tiempo de compilación, el complemento de Gradle analiza las dependencias de POM de los componentes de en un proyecto final. Cuando existe un POM de Maven para una dependencia directa de la app, el complemento procesa cada <licenses> e incorpora el vínculo y el título de cada licencia en un activo de Android que que incluye tu app.