2

在与华为安装推荐人 SDK 集成后,我想在上线之前测试我自己的应用程序。我遵循了代码实验室和文档中的所有步骤,当我在设备上安装 apk 时,getInstallReferrer 方法会抛出 IOException。这是我的代码。我做错了什么?我如何获取 installReferrer 信息以进行测试?

       Runnable {
            referrerClient = newBuilder(context).setTest(true).build()
            referrerClient.startConnection(object : InstallReferrerStateListener {

                @SuppressLint("SwitchIntDef")
                override fun onInstallReferrerSetupFinished(responseCode: Int) {
                    when (responseCode) {
                        InstallReferrerClient.InstallReferrerResponse.OK -> {
                            // Connection established.
                            try {
                                val response: ReferrerDetails = referrerClient.installReferrer
                                val referrerUrl: String = response.installReferrer
                                val referrerClickTime: Long = response.referrerClickTimestampSeconds
                                val appInstallTime: Long = response.installBeginTimestampSeconds
                            }catch (e : IOException){
                                Log.i("INSTALL_REFERRER","IOException")
                            }
                            catch(e: RemoteException){
                                Log.i("INSTALL_REFERRER","RemoteException")
                            }
                            finally {
                                referrerClient.endConnection()
                            }


                        }
                        InstallReferrerClient.InstallReferrerResponse.FEATURE_NOT_SUPPORTED -> {
                           
                            Log.i("INSTALL_REFERRER","NOT AVAILABLE")
                        }
                        InstallReferrerClient.InstallReferrerResponse.SERVICE_UNAVAILABLE -> {
                           
                            Log.i("INSTALL_REFERRER","SERVICE UNAVAILABLE")
                        }
                    }
                }

                override fun onInstallReferrerServiceDisconnected() {
                    Log.i("INSTALL_REFERRER","ReferrerServiceDisconnected")
                }
            })
        }.run()
4

1 回答 1

0

请检查是否添加了AIDL接口。

检查下面的屏幕截图: 在此处输入图像描述

  • 通过 AIDL 获取 Install Referrer 信息

您可以调用HUAWEI Ads Kit提供的AIDL API从华为设备获取安装Referrer信息,无需集成任何HUAWEI SDK。在任一模式(SDK 或 AIDL)下从设备获取的安装引用信息是相同的。

  • 通话流程 在此处输入图像描述

  • 开发流程如下

  1. 为 IPPSChannelInfoService API 创建一个 AIDL 文件并保存该文件。

  2. 将以下内容复制到 AIDL 文件中:

    包com.huawei.android.hms.ppskit;
    /** 重要提示:请勿更改 AIDL 文件中的方法序列。*/
    接口 IPPSChannelInfoService {
    String getChannelInfo();
    }

  3. 将 Build Action 更改为 AIDL 文件的 AndroidInterfaceDescription。

  4. 重建项目。

  5. 创建一个类来实现 Android 原生的 IServiceConnection。

有关更多详细信息,请参阅文档。另外,请参考演示

更新:

  1. 需要指定包名,因为setTest(true)

    if (this.isTest){ var2 = "com.huawei.pps.hms.test"; }

  2. ReferrerDetails可以添加空检查。

    if (null != referrerDetails && null != mCallback)

于 2020-08-13T06:24:15.877 回答