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 di visualizzare in modo appropriato le notifiche relative alle 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 le notifiche relative al software open source relative alle 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 rispettivi 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 di livello principale:
- Includi il repository Maven di Google.
- Aggiungi il plug-in
oss-licenses
alle dipendenze.
Lo snippet di codice riportato di seguito illustra 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") } }
DSL alla moda
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
all'inizio del file:
DSL Kotlin
plugins { id("com.android.application") id("com.google.android.gms.oss-licenses-plugin") }
DSL alla moda
plugins { id 'com.android.application' id 'com.google.android.gms.oss-licenses-plugin' }
Puoi visualizzare il codice del plug-in su GitHub.
Aggiungere la raccolta all'app
Nella sezione dependencies
del file di build a livello di app, aggiungi una dipendenza alla libreria oss-licenses
:
DSL Kotlin
implementation("com.google.android.gms:play-services-oss-licenses:17.0.1")
DSL alla moda
implementation 'com.google.android.gms:play-services-oss-licenses:17.0.1'
Visualizza 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 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));
Una volta 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 libreria per vedere ulteriori informazioni sulle licenze per quella biblioteca.
Figura 1. L'attività del menu 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 il numero
setActivityTitle()
,
come illustrato 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. A questo scopo, 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
In fase di compilazione, il plug-in Gradle analizza le dipendenze POM del progetto dell'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 nella tua app.