问题描述
与华为安装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界面。
- 通过AIDL获取安装引荐来源信息
您可以调用HUAWEI Ads Kit提供的AIDL API,以从HUAWEI设备获取安装引用信息,而无需集成任何HUAWEI SDK。从两种模式(SDK或AIDL)的设备获得的安装引荐来源信息是相同的。
-
为IPPSChannelInfoService API创建AIDL文件并保存该文件。
-
将以下内容复制到AIDL文件:
包com.huawei.android.hms.ppskit;
/ **重要提示:请勿更改AIDL文件中的方法顺序。 * /
IPPSChannelInfoService接口{
字符串getChannelInfo();
} -
将构建操作更改为AIDL文件的AndroidInterfaceDescription。
-
重建项目。
-
创建一个类以实现Android原生IServiceConnection。
有关更多详细信息,请参见docs。 另外,请参阅the demo。
更新:
-
需要指定软件包名称,因为
setTest(true)
如果(this.isTest){ var2 =“ com.huawei.pps.hms.test”; }
-
可以添加
ReferrerDetails
上的空支票。if(null!= ReferrerDetails && null!= mCallback)