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 sviluppatore sei responsabile della corretta visualizzazione delle notifiche per le librerie open source utilizzate dalla tua app.

Google Play Services include una serie di strumenti progettati per offrire agli sviluppatori un modo più semplice per esprimere gli avvisi software open source di librerie utilizzate nelle 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à che può essere utilizzata per visualizzare questi termini. Scopri di più su come lo strumento trova e pacchettizza le informazioni sulle licenze.

Aggiungere il plug-in Gradle

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

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

Il seguente snippet di codice mostra questi passaggi:

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 trendy

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 sotto la dichiarazione esistente del plug-in com.android.application nella parte superiore del file:

DSL Kotlin

app/build.gradle.kts

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

DSL trendy

app/build.gradle

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

Puoi visualizzare il codice per questo plug-in su GitHub.

Aggiungi la raccolta alla tua app

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

DSL Kotlin

build.gradle.kts

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

DSL trendy

build.gradle

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

Mostra informazioni sulle licenze

Durante la creazione dell'app, il plug-in Gradle elabora le licenze e le aggiunge alle risorse dell'app. Per visualizzare facilmente la licenza, puoi avviare un'attività fornita dalla libreria play-services-oss-licenses in un punto appropriato della tua app, come mostrato nel seguente snippet di codice:

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

Quando viene avviata, questa attività mostra un elenco di librerie open source compilate nella tua app, incluse le librerie che fanno parte di Google Play Services, come mostrato nella Figura 1. Gli utenti possono toccare il nome di una raccolta per visualizzarne le informazioni aggiuntive.

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

Figura 1. L'attività del menu delle licenze mostra un elenco selezionabile di librerie open source utilizzate da un'app.

Imposta il titolo dell'attività

Per impostazione predefinita, il titolo dell'attività visualizzato è "Licenze open source". Puoi personalizzare il titolo dell'attività chiamando setActivityTitle(), come mostrato nel seguente snippet di codice:

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 al tema utilizzato nelle altre attività dell'app. Per farlo, includi l'attività di licenza open source in un elemento <activity> all'interno del file manifest della tua app, come mostrato nel seguente 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

Al momento della compilazione, il plug-in Gradle analizza le dipendenze dei POM del progetto della tua app. Quando esiste un POM Maven per una dipendenza diretta dell'app, il plug-in elabora ogni elemento <licenses> e incorpora il link e il titolo di ogni licenza in una risorsa Android inclusa nell'app.