您可以使用 Google 的 Play Install Referrer Library api 1.0 解决此问题。我是这样做的,它在默认阻止自动启动的设备上运行良好。
首先将以下行添加到应用程序的 build.gradle 文件的依赖项部分:
dependencies {
...
compile 'com.android.installreferrer:installreferrer:1.0'
}
然后你应该在你的 Activity 中实现接口 InstallReferrerStateListener 及其方法 onInstallReferrerSetupFinished 和 onInstallReferrerServiceDisconnected
调用 newBuilder() 方法创建 InstallReferrerClient 类的实例。
调用 startConnection() 建立与 Google Play 的连接。
startConnection() 方法是异步的,因此您必须重写 InstallReferrerStateListener 以在 startConnection() 完成后接收回调。
您还应该重写 onInstallReferrerSetupFinished() 方法来处理与 Google Play 的丢失连接。例如,如果 Play 商店服务在后台更新,Play Install Referrer Library 客户端可能会断开连接。库客户端必须调用 startConnection() 方法来重新启动连接,然后再发出进一步的请求。
例子:
InstallReferrerClient mReferrerClient
mReferrerClient = InstallReferrerClient.newBuilder(this).build();
mReferrerClient.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 could not 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 中的方法获取安装时间戳和推荐人 URL。
ReferrerDetails response = mReferrerClient.getInstallReferrer();
response.getInstallReferrer();
response.getReferrerClickTimestampSeconds();
response.getInstallBeginTimestampSeconds();
欲了解更多信息:
https ://developer.android.com/google/play/installreferrer/library
希望这可以帮助!!