美文网首页Android收藏集
Google Play Install Referrer API

Google Play Install Referrer API

作者: 吐必南波丸 | 来源:发表于2020-03-18 14:07 被阅读0次

背景 :Google Play要求在2020年3月1日前切换到Play Install Referrer API
由于上架项目上架到google play,需要统计下载的渠道来源,所以需要获取到Google Play 商店传的referrer值。

首先先看下之前的获取示例

  • 自定义个广播并在mainfest里面注册
public class InstallReferrerReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent data) {
        String rawReferrer = data.getStringExtra(REFERRER); /// 你想要的referrer值
        if (null == rawReferrer) {
            return;
        }
    }
}

mainfest 的application里面

       <receiver
            android:name=".broadcast.InstallReferrerReceiver"
            android:enabled="true"
            android:exported="true"
            android:permission="android.permission.INSTALL_PACKAGES">
            <intent-filter>
                <action android:name="com.android.vending.INSTALL_REFERRER" />
            </intent-filter>
        </receiver>

使用新的Install Referrer API, 官方文档

  • 在 build.gradle 中添加依赖
 dependencies {
        ...
        implementation 'com.android.installreferrer:installreferrer:1.0'
    }
  • 获取方法
        try {
            final InstallReferrerClient installReferrerClient = InstallReferrerClient.newBuilder(context).build();
            installReferrerClient.startConnection(new InstallReferrerStateListener() {
                @Override
                public void onInstallReferrerSetupFinished(int responseCode) {
                    switch (responseCode) {
                        case InstallReferrerClient.InstallReferrerResponse.OK:
                            // Connection established, get referrer
                            if (installReferrerClient != null) {
                                try {
                                    ReferrerDetails response = installReferrerClient.getInstallReferrer();
                                    String referrer = response.getInstallReferrer();// 你要得referrer值
                                    if (!TextUtils.isEmpty(referrer)) {
                                    
                                    }
                                    installReferrerClient.endConnection();
                                } catch (Exception ex) {
                                    Log.e("InstallReferrerHelper", ex.toString());
                                }
                            }
                            break;
                        case InstallReferrerClient.InstallReferrerResponse.FEATURE_NOT_SUPPORTED:
                            // API not available on the current Play Store app
                            Log.d("InstallReferrerHelper", "FEATURE_NOT_SUPPORTED");
                            break;
                        case InstallReferrerClient.InstallReferrerResponse.SERVICE_UNAVAILABLE:
                            // Connection could not be established
                            Log.d("InstallReferrerHelper", "SERVICE_UNAVAILABLE");
                            break;
                    }
                }

                @Override
                public void onInstallReferrerServiceDisconnected() {
                    // Try to restart the connection on the next request to
                    // Google Play by calling the startConnection() method.
                }

            });
        } catch (Exception ex) {
            Log.e("InstallReferrerHelper", ex.toString());
        }

相关文章

网友评论

    本文标题:Google Play Install Referrer API

    本文链接:https://www.haomeiwen.com/subject/ncwqyhtx.html