Dołącz powiadomienia open source

Usługi Google Play mogą czasami zawierać biblioteki open source lub być od nich zależne. Aby spełnić wymagania licencyjne bibliotek open source, jako deweloper musisz odpowiednio wyświetlać powiadomienia dotyczące bibliotek open source, których używa Twoja aplikacja.

Usługi Google Play obejmują zestaw narzędzi, które ułatwiają deweloperom dodawanie powiadomień o oprogramowaniu open source w bibliotekach używanych w ich aplikacjach. Jednym z tych narzędzi jest wtyczka Gradle, która zbiera warunki licencji z załączonych bibliotek zgodnie z deklaracją w ich plikach POM i tworzy aktywność, która może być używana do wyświetlania tych warunków. Dowiedz się więcej o tym, jak narzędzie znajduje i pakuje informacje o licencjach.

Dodawanie wtyczki Gradle

W pliku kompilacji na poziomie katalogu głównego:

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

Ten fragment kodu pokazuje te czynności:

Kotlin DSL

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

Groovy DSL

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

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

Kotlin DSL

app/build.gradle.kts

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

Groovy DSL

app/build.gradle

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

Kod źródłowy tego wtyczki znajdziesz na GitHubie.

Dodawanie biblioteki do aplikacji

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

Kotlin DSL

build.gradle.kts

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

Groovy DSL

build.gradle

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

Wyświetlanie informacji o licencjach

Podczas kompilowania aplikacji wtyczka Gradle przetwarza licencje i dodaje je do zasobów aplikacji. Aby łatwo wyświetlić licencję, możesz uruchomić w odpowiednim miejscu w aplikacji aktywność udostępnioną przez bibliotekę 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 ta aktywność wyświetla listę bibliotek open source skompilowanych w aplikacji, w tym bibliotek wchodzących w skład usług Google Play (patrz rys. 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ść w menu Licencje zawiera listę bibliotek open source, których używa aplikacja.

Ustaw tytuł aktywności

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

Kotlin

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

Java

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

Zastosuj motyw do aktywności

Możesz zastosować motyw do aktywności, aby dopasować go do motywu używanego w innych aktywnościach w aplikacji. Aby to zrobić, dodaj element <activity> do 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>

Jak określana jest lista licencji

Podczas kompilacji wtyczka Gradle skanuje zależności POM projektu aplikacji. Jeśli istnieje plik Maven POM dla bezpośredniej zależności aplikacji, wtyczka przetwarza każdy element <licenses> i umieszcza link oraz tytuł każdej licencji w zasobie Androida, który jest dołączony do aplikacji.