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 relative alle librerie open source utilizzate dalla tua app.
Google Play Services include un insieme di strumenti progettati per offrire agli sviluppatori un modo più semplice di esprimere le notifiche 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à da utilizzare per mostrare 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, procedi nel seguente modo:
- Includi il repository Google Maven.
- 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 Groovy
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 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 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.0")
DSL Groovy
build.gradle
implementation 'com.google.android.gms:play-services-oss-licenses:17.0.0'
Visualizza informazioni sulla licenza
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 illustrato 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à visualizza 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 visualizzare ulteriori informazioni sulle licenze per quella raccolta.
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, il titolo dell'attività visualizzata è "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 a quello utilizzato nelle altre attività dell'app. A tale scopo, includi l'attività della licenza open source in un
elemento <activity>
nel 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.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 esegue la scansione delle dipendenze dei POM del progetto dell'app. In presenza di una 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.