Includi notifiche open source

A volte Google Play Services include o dipende da librerie open source. Per rispettare i requisiti di licenza delle librerie open source, in qualità di gli sviluppatori sono responsabili di visualizzare in modo appropriato gli avvisi per i e le librerie di origine utilizzate dalla tua app.

Google Play Services include una serie di strumenti studiati per offrire agli sviluppatori il modo più semplice per esprimere le notifiche relative al software open source relative alle librerie utilizzate le loro app. Uno di questi strumenti è un plug-in Gradle che raccoglie i termini di licenza dalle librerie incluse, come dichiarato nei file POM, e crea un attività utilizzabili per visualizzare questi termini. Scopri di più su come lo strumento rileva e informazioni sulla licenza dei pacchetti.

Aggiungi il plug-in Gradle

Nel file di build di livello principale, segui questi passaggi:

  1. Includi il ruolo Google Maven un repository attendibile.
  2. Aggiungi il plug-in oss-licenses alle tue dipendenze.

Il seguente snippet di codice illustra questa procedura:

DSL 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 alla moda

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'
  }
}

Nel file di build a livello di app, applica il plug-in aggiungendo la seguente riga secondo la dichiarazione esistente del plug-in com.android.application in parte superiore del file:

DSL Kotlin

app/build.gradle.kts

plugins {
    id("com.android.application")
    id("com.google.android.gms.oss-licenses-plugin")
}

DSL alla moda

app/build.gradle

plugins {
    id 'com.android.application'
    id 'com.google.android.gms.oss-licenses-plugin'
}

Puoi visualizzare per questo su GitHub.

Aggiungi la raccolta all'app

Nella sezione dependencies del file di build a livello di app, aggiungi una dipendenza nella libreria oss-licenses:

DSL Kotlin

build.gradle.kts

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

DSL alla moda

build.gradle

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

Mostra informazioni sulla licenza

Quando la tua app crea, il plug-in Gradle elabora le licenze e le aggiunge le risorse della tua app. Per visualizzare facilmente la licenza, puoi avviare un'attività fornita dalla libreria play-services-oss-licenses a un punto di accesso nell'app, come mostrato nello snippet di codice riportato di seguito:

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));

Una volta avviata, questa attività mostra un elenco di librerie open source che compilati nella tua app, incluse le librerie che fanno parte di Google Play servizi, come mostrato nella Figura 1. Gli utenti possono toccare il nome di una raccolta per visualizzarla e altre informazioni sulla licenza per quella libreria.

Visualizzazione elenco con ogni elemento contenente il nome di un open source
libreria

Figura 1. L'attività del menu Licenze mostra un elenco selezionabile di e le librerie di origine utilizzate da un'app.

Imposta il titolo dell'attività

Per impostazione predefinita, l'attività visualizzata è denominata "Licenze open source". Puoi personalizza il titolo dell'attività chiamando setActivityTitle(), come mostrato nello snippet di codice riportato di seguito:

Kotlin

OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title))

Java

OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title));

Applicare un tema all'attività

Puoi applicare un tema all'attività in modo che corrisponda a quello utilizzato nell'app altre attività. Per farlo, includi l'attività di licenza open source in una <activity> elemento all'interno del file manifest dell'app, come mostrato di seguito snippet di codice:

<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>

Come viene determinato l'elenco delle licenze

Durante la compilazione, il plug-in Gradle analizza le dipendenze POM dell'app progetto. Quando esiste un POM Maven per una dipendenza diretta dell'app, il plug-in elabora ogni <licenses> incorpora il link e il titolo di ogni licenza in una risorsa Android incluso nella tua app.