您可以使用 Google Play 商店的安装来源 API 安全地从 Google Play 检索来源内容。Play 安装来源 API 客户端库是用 Java 编程语言编写的,是 Android 接口定义语言 (AIDL) 文件的包装器,该文件定义了与安装来源服务的接口。您可以使用 Play 安装来源 API 客户端库简化开发过程。
本指南涵盖使用 Play 安装来源库从 Google Play 检索来源信息的入门知识。
更新应用的依赖项
在应用的 build.gradle
文件的依赖项部分添加以下行
Groovy
dependencies { ... implementation "com.android.installreferrer:installreferrer:2.2" }
Kotlin
dependencies { ... implementation("com.android.installreferrer:installreferrer:2.2") }
连接到 Google Play
在可以使用 Play 安装来源 API 库之前,您必须使用以下步骤建立与 Play 商店应用的连接
- 调用
newBuilder()
方法以创建InstallReferrerClient
类的实例。 调用
startConnection()
以建立与 Google Play 的连接。startConnection()
方法是异步的,因此您必须覆盖InstallReferrerStateListener
以在startConnection()
完成后接收回调。覆盖
onInstallReferrerSetupFinished()
方法以在回调完成后收到通知。此方法使用响应代码调用,您必须使用该响应代码处理不同的状态。OK
表示连接成功。每个其他InstallReferrerResponse
常量用于不同类型的错误。覆盖
onInstallReferrerServiceDisconnected()
方法以处理与 Google Play 的连接丢失。例如,如果 Play 商店服务在后台更新,Play 安装来源 API 客户端库客户端可能会丢失连接。在进行进一步的请求之前,库客户端必须调用startConnection()
方法以重新启动连接。
以下代码演示了如何启动和测试与 Play 商店应用的连接
Kotlin
private lateinit var referrerClient: InstallReferrerClient referrerClient = InstallReferrerClient.newBuilder(this).build() referrerClient.startConnection(object : InstallReferrerStateListener { override fun onInstallReferrerSetupFinished(responseCode: Int) { when (responseCode) { InstallReferrerResponse.OK -> { // Connection established. } InstallReferrerResponse.FEATURE_NOT_SUPPORTED -> { // API not available on the current Play Store app. } InstallReferrerResponse.SERVICE_UNAVAILABLE -> { // Connection couldn't be established. } } } override fun onInstallReferrerServiceDisconnected() { // Try to restart the connection on the next request to // Google Play by calling the startConnection() method. } })
Java
InstallReferrerClient referrerClient; referrerClient = InstallReferrerClient.newBuilder(this).build(); referrerClient.startConnection(new InstallReferrerStateListener() { @Override public void onInstallReferrerSetupFinished(int responseCode) { switch (responseCode) { case InstallReferrerResponse.OK: // Connection established. break; case InstallReferrerResponse.FEATURE_NOT_SUPPORTED: // API not available on the current Play Store app. break; case InstallReferrerResponse.SERVICE_UNAVAILABLE: // Connection couldn't be established. break; } } @Override public void onInstallReferrerServiceDisconnected() { // Try to restart the connection on the next request to // Google Play by calling the startConnection() method. } });
获取安装来源
在建立与 Play 商店应用的连接后,通过完成以下步骤获取安装来源的详细信息
使用同步
getInstallReferrer()
方法返回ReferrerDetails
的实例。使用
ReferrerDetails
类提供的 方法获取安装推荐信息。
以下代码演示了如何访问安装推荐信息
Kotlin
val response: ReferrerDetails = referrerClient.installReferrer val referrerUrl: String = response.installReferrer val referrerClickTime: Long = response.referrerClickTimestampSeconds val appInstallTime: Long = response.installBeginTimestampSeconds val instantExperienceLaunched: Boolean = response.googlePlayInstantParam
Java
ReferrerDetails response = referrerClient.getInstallReferrer(); String referrerUrl = response.getInstallReferrer(); long referrerClickTime = response.getReferrerClickTimestampSeconds(); long appInstallTime = response.getInstallBeginTimestampSeconds(); boolean instantExperienceLaunched = response.getGooglePlayInstantParam();
注意: 安装推荐信息将在 90 天内有效,并且在应用程序重新安装之前 **不会改变**。为避免在应用程序中进行不必要的 API 调用,您应该 **只在** 安装后的首次执行期间调用 API。
关闭服务连接
获取推荐信息后,在您的 InstallReferrerClient
实例上调用 endConnection()
方法以关闭连接。关闭连接将有助于您避免泄漏和性能问题。
有关更多信息,请参阅 Play Install Referrer Library 参考。