带有HMS Core版本5.0.1.307的mReferrerClient.getInstallReferrer中的IOException

问题描述

与华为安装Referrer 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()

解决方法

请检查是否添加了AIDL界面。

检查以下屏幕截图: enter image description here

  • 通过AIDL获取安装引荐来源信息

您可以调用HUAWEI Ads Kit提供的AIDL API,以从HUAWEI设备获取安装引用信息,而无需集成任何HUAWEI SDK。从两种模式(SDK或AIDL)的设备获得的安装引荐来源信息是相同的。

  • 通话过程 enter image description here

  • 开发过程如下

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

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

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

  3. 将构建操作更改为AIDL文件的AndroidInterfaceDescription。

  4. 重建项目。

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

有关更多详细信息,请参见docs。 另外,请参阅the demo

更新

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

    如果(this.isTest){ var2 =“ com.huawei.pps.hms.test”; }

  2. 可以添加ReferrerDetails上的空支票。

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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...