Dołącz powiadomienia open source

Usługi Google Play czasami zawierają biblioteki open source lub zależą od nich. Aby spełnić wymagania licencyjne dotyczące bibliotek open source, jako deweloper ponosisz odpowiedzialność za odpowiednie wyświetlanie powiadomień dotyczących bibliotek open source, z których korzysta Twoja aplikacja.

Usługi Google Play zawierają zestaw narzędzi ułatwiających programistom informowanie o otwartym oprogramowaniu informacji o bibliotekach używanych w ich aplikacjach. Jedno z tych narzędzi to wtyczka Gradle, która zbiera hasła licencji z uwzględnionych bibliotek zadeklarowanych w plikach POM i tworzy aktywność, której można użyć do wyświetlenia tych warunków. Dowiedz się więcej o tym, jak narzędzie znajduje i pakuje licencje.

Dodawanie wtyczki Gradle

W pliku kompilacji najwyższego poziomu wykonaj te czynności:

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

Ten fragment kodu zawiera następujące 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")
  }
}

Imponująca wersja 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")
}

Imponująca wersja DSL

app/build.gradle

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

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

kompilacja.gradle.kts

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

Imponująca wersja DSL

kompilacja.gradle

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

Wyświetl informacje o licencji

Podczas kompilowania aplikacji wtyczka Gradle przetwarza licencje i dodaje je do zasobów aplikacji. Aby łatwo wyświetlić licencję, możesz uruchomić działanie dostarczane przez bibliotekę play-services-oss-licenses w odpowiednim miejscu aplikacji, 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 Twojej aplikacji, łącznie z bibliotekami będącymi częścią Usług Google Play, jak pokazano na ilustracji 1. Aby wyświetlić dodatkowe informacje o licencji, użytkownicy mogą kliknąć nazwę biblioteki.

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

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

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 pokazano w tym fragmencie kodu:

Kotlin

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

Java

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

Stosowanie motywu do aktywności

Do aktywności możesz zastosować motyw pasujący do innych działań w aplikacji. Aby to zrobić, uwzględnij aktywność dotyczącą licencji open source w elemencie <activity> aplikacji 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>

Jak określa się listę licencji

W czasie kompilacji wtyczka Gradle skanuje zależności POM projektu aplikacji. W przypadku bezpośredniego zarządzania zależnościami aplikacji Maven Pom przetwarza każdy element <licenses> i umieszcza link oraz tytuł każdej licencji w zasobie Android dołączonym do aplikacji.