A volte gli SDK di Google Play Services includono o dipendono da librerie open source. 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 offrire agli sviluppatori un modo più semplice per esprimere le notifiche del software open source (OSS) delle librerie utilizzate nelle loro app. oss-licenses-plugin e l'SDK oss-licenses di Google Play Services raccolgono i termini di licenza dalle librerie incluse, come dichiarato nei 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.
Aggiungi il plug-in Gradle
Nelle pluginManagement delle impostazioni progetto, segui questi passaggi:
- Includi il repository Maven di Google.
- Risolvi il plug-in
oss-licensesinPluginManagement.
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.13.0") } } } }
DSL Groovy
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.13.0") } } } }
Nel file di build a livello di app, applica il plug-in aggiungendo la riga seguente 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") }
DSL Groovy
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 libreria play-services-oss-licenses alla tua app
Nella sezione dependencies del file di 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.5.3")
DSL Groovy
build.gradle
implementation 'com.google.android.gms:play-services-oss-licenses:17.5.3'
Visualizza le informazioni sulla licenza
Quando l'app viene creata, il plug-in Gradle elabora le licenze e le aggiunge alle risorse dell'app. Per visualizzare facilmente la licenza, puoi lanciare 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.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 nella tua 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.
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, l'attività visualizzata ha il titolo "Licenze open source". Puoi personalizzare il titolo dell'attività chiamando setActivityTitle(), come mostrato nello snippet di codice seguente:
Kotlin
OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title))
Java
OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title));
Applica un tema all'attività
Esistono diversi modi per applicare un tema a OssLicensesMenuActivity,
a seconda che la tua app utilizzi temi basati su Material 3 o XML.
App che utilizzano Material 3
Per le app che utilizzano Material 3, puoi chiamare il metodo
setTheme()
per applicare un tema personalizzato all'attività, come mostrato nel seguente snippet di codice:
Kotlin
import com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity ... OssLicensesMenuActivity.setTheme(lightColorScheme, darkColorScheme, typography) startActivity(Intent(this, OssLicensesMenuActivity::class.java))
Java
import com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity; ... OssLicensesMenuActivity.setTheme(lightColorScheme, darkColorScheme, typography); startActivity(new Intent(this, OssLicensesMenuActivity.class));
App che utilizzano temi XML
Per le app che utilizzano temi XML, puoi applicare un tema all'attività nel manifest in modo che corrisponda al tema utilizzato nelle altre attività dell'app. Per farlo, includi l'attività della licenza open source in un elemento <activity> all'interno del file manifest dell'app, come mostrato nello snippet di codice seguente:
<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
Al tempo di compilazione, il plug-in Gradle analizza le dipendenze 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 un asset Android incluso nell'app.