Includi notifiche open source

Gli SDK di Google Play Services a volte includono librerie open source o dipendono da queste. Per rispettare i requisiti di licenza delle librerie open source, in qualità di sviluppatore hai la responsabilità di mostrare in modo appropriato le informative per le librerie open source utilizzate dalla tua app.

Google Play Services include un insieme di strumenti progettati per consentire agli sviluppatori di esprimere più facilmente le informative sul software open source (OSS) delle librerie utilizzate nelle loro app. Il oss-licenses-plugin e l'SDK oss-licenses dei servizi Google Play raccolgono i termini di licenza dalle librerie incluse, come dichiarato nei relativi file POM, e creano 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

In pluginManagement delle impostazioni progetto, segui questi passaggi:

  1. Includi il repository Maven di Google.
  2. Risolvi il plug-in oss-licenses in PluginManagement.

Il seguente snippet di codice mostra questi passaggi:

Kotlin DSL

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")
      }
    }
  }
}

Groovy DSL

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")
      }
    }
  }
}

Nel file della 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:

Kotlin DSL

app/build.gradle.kts

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

Groovy DSL

app/build.gradle

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

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

Aggiungere la libreria play-services-oss-licenses all'app

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

Kotlin DSL

build.gradle.kts

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

Groovy DSL

build.gradle

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

Visualizzare le informazioni sulle licenze

Quando la tua app viene creata, 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 dell'app, come mostrato nel seguente snippet di codice:

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

Quando l'attività viene avviata, viene visualizzato un elenco di librerie open source compilate nell'app, incluse le librerie utilizzate dall'app, come mostrato nella Figura 1. Gli utenti possono toccare il nome di una libreria per visualizzare ulteriori informazioni sulla licenza per quella libreria.

Visualizzazione elenco in cui ogni elemento contiene 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.

Impostare il titolo dell'attività

Per impostazione predefinita, l'attività visualizzata ha il titolo "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à della licenza open source in un <activity> elemento all'interno del file manifest dell'app, come mostrato nel seguente snippet di codice:

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

Come viene determinato l'elenco delle licenze

In fase di compilazione, il plug-in Gradle esamina le dipendenze POM del progetto dell'app. Quando esiste un POM Maven per una dipendenza diretta dell'app, il plugin elabora ogni <licenses> elemento e incorpora il link e il titolo di ogni licenza in un asset Android che è incluso nell'app.