Dołącz powiadomienia open source

Usługi Google Play zawierają czasem biblioteki open source lub zależą od nich takie biblioteki. Aby zachować zgodność z wymaganiami dotyczącymi licencji bibliotek open source, jako deweloper odpowiadasz za odpowiednie wyświetlanie informacji o bibliotekach open source, z których korzysta Twoja aplikacja.

Usługi Google Play obejmują zestaw narzędzi, które mają ułatwić deweloperom zgłaszanie powiadomień o używanych w aplikacjach bibliotekach oprogramowania open source. Jednym z tych narzędzi jest wtyczka do Gradle, która zbiera warunki licencji z uwzględnionych bibliotek zgodnie z zadeklarowanymi w plikach POM i tworzy działanie, które może służyć do wyświetlania tych haseł. Dowiedz się więcej o tym, jak narzędzie znajduje i pakietuje informacje o licencji.

Dodawanie wtyczki Gradle

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

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

Ten fragment kodu wykonuje 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")
  }
}

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

Zastosuj wtyczkę w pliku kompilacji na poziomie aplikacji, dodając na górze pliku ten wiersz pod istniejącą deklaracją wtyczki com.android.application:

Kotlin DSL

app/build.gradle.kts

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

Świetny DSL

app/build.gradle,

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

Możesz wyświetlić kod tej wtyczki na GitHubie.

Dodaj bibliotekę do aplikacji

W sekcji dependencies pliku kompilacji na poziomie aplikacji dodaj zależność z biblioteką oss-licenses:

Kotlin DSL

build.gradle.kts

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

Świetny DSL

build.gradle

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

Wyświetl informacje o licencji

Podczas tworzenia aplikacji wtyczka Gradle przetwarza licencje i dodaje je do zasobów aplikacji. Aby łatwo wyświetlić licencję, możesz uruchomić aktywność z biblioteki play-services-oss-licenses w odpowiednim punkcie aplikacji, jak widać 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 to działanie wyświetla listę bibliotek open source skompilowanych w Twoją aplikację, w tym biblioteki wchodzące w skład Usług Google Play, jak widać na ilustracji 1. Użytkownicy mogą kliknąć nazwę biblioteki, aby wyświetlić dodatkowe informacje na jej temat.

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

Rysunek 1. Aktywność w menu licencji zawiera listę bibliotek open source używanych przez aplikację do wyboru.

Ustaw tytuł aktywności

Domyślnie wyświetlana aktywność ma tytuł „Licencje open source”. Możesz dostosować tytuł aktywności, wywołując metodę 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, aby pasował do motywu używanego w innych działaniach w aplikacji. Aby to zrobić, umieść aktywność związaną z licencją open source w elemencie <activity> w pliku manifestu aplikacji, jak pokazano poniżej:

<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 aplikacji. Jeśli POM jest uzależnione od aplikacji bezpośrednio, wtyczka przetwarza każdy element <licenses> i umieszcza link oraz tytuł każdej licencji w zasobie Androida dołączonym do aplikacji.