Uwzględnij powiadomienia typu open source

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Usługi Google Play czasami zawierają biblioteki open source lub są od nich zależne. Aby zachować zgodność z wymaganiami dotyczącymi licencji bibliotek open source, jako deweloper odpowiadasz za odpowiednie wyświetlanie powiadomień dotyczących bibliotek open source, z których korzysta Twoja aplikacja.

Usługi Google Play obejmują zestaw narzędzi ułatwiających programistom informowanie o otwartym oprogramowaniu informacji o bibliotekach używanych w ich aplikacjach. Jednym z tych narzędzi jest wtyczka Gradle, która zbiera hasła licencyjne z uwzględnionych bibliotek zgodnie z definicją w plikach POM i tworzy aktywność, której można użyć do wyświetlania tych warunków. Dowiedz się więcej o tym, jak narzędzie znajduje i pobiera informacje o licencji.

Dodawanie wtyczki Gradle

W pliku kompilacji na poziomie głównym wykonaj te czynności:

  1. Uwzględnij repozytorium Google Maven.
  2. Dodaj wtyczkę oss-licenses do zależności.

Ten fragment kodu zawiera te informacje:

Kotlin DSL

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

Świetne DSL

kompilacja.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'
  }
}

W pliku kompilacji na poziomie aplikacji zastosuj wtyczkę, dodając ten wiersz pod istniejącą deklaracją wtyczki com.android.application u góry pliku:

Kotlin DSL

app/build.gradle.kts

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

Świetne DSL

app/build.gradle

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

Kod tego wtyczki możesz zobaczyć na GitHubie.

Dodaj bibliotekę do aplikacji

W sekcji dependencies pliku kompilacji na poziomie aplikacji dodaj zależność od biblioteki oss-licenses:

Kotlin DSL

kompilacja.gradle.kts

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

Świetne DSL

kompilacja.gradle

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

Wyświetl informacje o licencji

Podczas kompilacji aplikacji wtyczka Gradle przetwarza licencje i dodaje je do zasobów aplikacji. Aby łatwo wyświetlić licencję, możesz uruchomić w odpowiednim momencie aplikacji działanie pochodzące z biblioteki play-services-oss-licenses, jak pokazano w tym fragmencie kodu:

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

Po uruchomieniu tej aktywności wyświetlana jest lista bibliotek open source skompilowanych w aplikacji, w tym bibliotek stanowiących część Usług Google Play (jak pokazano na rysunku 1). Użytkownicy mogą kliknąć nazwę biblioteki, aby wyświetlić dodatkowe informacje o licencji.

Widok listy z każdym elementem zawierającym nazwę biblioteki open source

Rysunek 1. Aktywność związana z menu licencji zawiera możliwą do wyboru listę bibliotek open source, z których korzysta aplikacja.

Ustaw nazwę aktywności

Domyślnie wyświetlana aktywność ma tytuł „Licencje open source”. Możesz dostosować tytuł aktywności, wywołując metodę setActivityTitle(), jak w tym fragmencie kodu:

Kotlin

OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title))

Java

OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title));

Zastosowanie motywu do działania

Możesz zastosować motyw do aktywności, aby pasował do motywu używanego w innych działaniach w aplikacji. Aby to zrobić, dołącz aktywność dotyczącą licencji open source do elementu <activity> w pliku manifestu aplikacji, jak pokazano w tym fragmencie kodu:

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

Sposób określania listy licencji

Podczas kompilacji wtyczka Gradle skanuje zależności POM projektu. Gdy klucz menedżera Maven zawiera bezpośrednią zależności aplikacji, wtyczka przetwarza każdy element <licenses> i umieszcza link oraz tytuł każdej licencji w zasobie Androida dołączonym do aplikacji.