Dołącz powiadomienia open source

Usługi Google Play czasami zawierają biblioteki open source lub są od nich zależne. Aby zachować zgodność z wymaganiami dotyczącymi licencji dotyczącymi bibliotek open source, jako deweloper odpowiadasz za prawidłowe wyświetlanie powiadomień dotyczących bibliotek open source używanych przez Twoją aplikację.

Usługi Google Play zawierają zestaw narzędzi, które ułatwiają deweloperom zgłaszanie powiadomień o oprogramowaniu open source pochodzącym z bibliotek używanych w aplikacjach. Jednym z tych narzędzi jest wtyczka do Gradle, która zbiera warunki licencji z dołączonych bibliotek zgodnie z deklaracją w plikach POM i tworzy działanie, które można wykorzystać do wyświetlania tych warunków. Dowiedz się więcej o tym, jak to narzędzie znajduje i pakuje informacje o licencji.

Dodawanie wtyczki Gradle

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

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

Ten fragment kodu ilustruje te kroki:

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

W pliku kompilacji na poziomie aplikacji zastosuj wtyczkę, dodając ten wiersz w istniejącej deklaracji wtyczki com.android.application na górze pliku:

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

Kod tej wtyczki możesz wyświetlić na GitHubie.

Dodaj bibliotekę do aplikacji

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

Kotlin DSL

build.gradle.kts

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

Świetny DSL

build.gradle

implementation 'com.google.android.gms:play-services-oss-licenses:17.1.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 w odpowiednim punkcie aplikacji uruchomić aktywność udostępnianą 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 to działanie wyświetla listę bibliotek open source, które są kompilowane w Twojej aplikacji, w tym biblioteki wchodzące w skład usług Google Play, jak pokazano na rysunku 1. Użytkownicy mogą dotknąć nazwy biblioteki, aby wyświetlić dodatkowe informacje o licencji na daną bibliotekę.

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ę, które można wybrać.

Ustaw nazwę aktywności

Domyślnie wyświetlana aktywność nosi tytuł „Licencje open source”. Możesz dostosować nazwę 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

Do aktywności możesz zastosować motyw, aby dopasować go do innych aktywności w aplikacji. Aby to zrobić, uwzględnij aktywność związaną z licencją open source w elemencie <activity> w pliku manifestu aplikacji, jak 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 kompilowania wtyczka Gradle skanuje zależności POM projektu aplikacji. Gdy istnieje menedżer Maven zależny od bezpośredniej zależności aplikacji, wtyczka przetwarza każdy element <licenses> i umieszcza link oraz tytuł każdej licencji w zasobie Androida dołączanym do aplikacji.