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 visualizzazione appropriata delle notifiche 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 relative al software open source delle 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 relativi 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.
Aggiungi il plug-in Gradle
Nel file di compilazione a livello di root:
- Includi il repository Maven di Google.
- Aggiungi il plug-in
oss-licenses
alle dipendenze.
Il seguente snippet di codice mostra questi passaggi:
DSL Kotlin
buildscript { repositories { ... google() // maven { url("https://maven.google.com") } for Gradle <= 3 } dependencies { ... classpath("com.google.android.gms:oss-licenses-plugin:0.10.6") } }
Groovy DSL
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 riga seguente sotto la dichiarazione esistente del plug-in com.android.application
nella parte superiore del file:
DSL Kotlin
plugins { id("com.android.application") id("com.google.android.gms.oss-licenses-plugin") }
Groovy DSL
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 all'app
Nella sezione dependencies
del file di compilazione a livello di app, aggiungi una dipendenza dalla libreria oss-licenses
:
DSL Kotlin
implementation("com.google.android.gms:play-services-oss-licenses:17.1.0")
Groovy DSL
implementation 'com.google.android.gms:play-services-oss-licenses:17.1.0'
Mostrare le informazioni sulla licenza
Quando l'app viene compilata, 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 raccolta play-services-oss-licenses
in un punto appropriato della tua app, come mostrato nello snippet di codice seguente:
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 lanciata, questa attività mostra un elenco di librerie open source compilate nella tua app, incluse quelle che fanno parte dei servizi Google Play, come mostrato nella figura 1. Gli utenti possono toccare il nome di una raccolta per visualizzare informazioni aggiuntive sulla licenza.
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));
Applicare un tema all'attività
Puoi applicare un tema all'attività in modo che corrisponda a quello utilizzato nelle altre attività della tua app. A tale scopo, 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.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
In fase di compilazione, il plug-in Gradle esegue la scansione delle dipendenze POM del progetto della tua app. Quando esiste un file 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.