Bao gồm thông báo nguồn mở

Dịch vụ Google Play đôi khi bao gồm hoặc phụ thuộc vào các thư viện nguồn mở. Để tuân thủ các yêu cầu cấp phép của thư viện nguồn mở, bạn với tư cách là nhà phát triển có trách nhiệm hiển thị phù hợp các thông báo các thư viện nguồn mà ứng dụng của bạn dùng.

Dịch vụ Google Play có một bộ công cụ được thiết kế để mang lại cho nhà phát triển dễ dàng hơn để thể hiện thông báo của phần mềm nguồn mở về các thư viện được sử dụng trong ứng dụng của họ. Một trong những công cụ đó là trình bổ trợ Gradle thu thập các điều khoản cấp phép từ các thư viện đi kèm, như được khai báo trong các tệp POM của chúng và tạo một hoạt động có thể dùng để hiển thị các cụm từ này. Tìm hiểu thêm về cách công cụ này tìm và thông tin giấy phép của gói.

Thêm trình bổ trợ Gradle

Trong tệp bản dựng cấp gốc, hãy làm như sau:

  1. Thêm Google Maven kho lưu trữ.
  2. Thêm trình bổ trợ oss-licenses vào các phần phụ thuộc.

Đoạn mã sau đây minh hoạ các bước này:

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

DSL bắt mắt

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

Trong tệp bản dựng cấp ứng dụng, hãy áp dụng trình bổ trợ bằng cách thêm dòng sau theo phần khai báo hiện tại của trình bổ trợ com.android.application tại đầu tệp:

Kotlin DSL

app/build.gradle.kts

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

DSL bắt mắt

app/build.gradle

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

Bạn có thể xem mã này cho trình bổ trợ trên GitHub.

Thêm thư viện vào ứng dụng

Trong mục dependencies của tệp bản dựng cấp ứng dụng, hãy thêm phần phụ thuộc vào thư viện oss-licenses:

Kotlin DSL

build.gradle.kts

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

DSL bắt mắt

build.gradle

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

Hiển thị thông tin giấy phép

Khi ứng dụng của bạn được tạo bản dựng, trình bổ trợ Gradle sẽ xử lý và thêm giấy phép vào của ứng dụng. Để dễ dàng hiển thị giấy phép, bạn có thể chạy một hoạt động do thư viện play-services-oss-licenses cung cấp tại vào ứng dụng của bạn, như được thể hiện trong đoạn mã sau:

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

Khi được chạy, hoạt động này sẽ hiển thị một danh sách các thư viện nguồn mở được biên dịch vào ứng dụng của bạn, bao gồm cả các thư viện thuộc Google Play dịch vụ, như được minh hoạ trong Hình 1. Người dùng có thể nhấn vào tên của một thư viện để xem thông tin giấy phép bổ sung cho thư viện đó.

Chế độ xem danh sách có mỗi phần tử chứa tên của một nguồn mở
thư viện

Hình 1. Hoạt động trên trình đơn giấy phép hiển thị một danh sách các nội dung mở có thể chọn các thư viện nguồn mà ứng dụng dùng.

Đặt tiêu đề cho hoạt động

Theo mặc định, hoạt động được hiển thị có tiêu đề "Giấy phép nguồn mở". Bạn có thể tuỳ chỉnh tiêu đề của hoạt động bằng cách gọi setActivityTitle()! như minh hoạ trong đoạn mã sau:

Kotlin

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

Java

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

Áp dụng một giao diện cho hoạt động

Bạn có thể áp dụng một giao diện cho hoạt động để khớp với giao diện dùng trong ứng dụng của mình các hoạt động khác. Để thực hiện việc này, hãy đưa hoạt động cấp phép nguồn mở vào trong một Phần tử <activity> trong tệp kê khai của ứng dụng, như minh hoạ sau đây đoạn mã:

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

Cách xác định danh sách giấy phép

Tại thời điểm biên dịch, trình bổ trợ Gradle sẽ quét các phần phụ thuộc POM của các phần phụ thuộc dự án. Khi một Maven POM tồn tại cho phần phụ thuộc trực tiếp của ứng dụng, trình bổ trợ này xử lý từng <licenses> và nhúng liên kết và tiêu đề của mỗi giấy phép vào một nội dung Android có trong ứng dụng của bạn.