我是相当新的android开发,并试图获得广告ID为特定的设备。我发现了一些关于如何做到这一点的堆栈溢出建议:
val adInfo = AdvertisingIdClient.getAdvertisingIdInfo(getApplicationContext())
val adId = adInfo?.id
字符串
在工作线程中)。然而,这一直给我“等待服务连接超时”错误。
其他人似乎建议添加以下gradle依赖帮助,但不适合我:
implementation 'com.google.android.gms:play-services-ads-identifiers:17.0.0'
implementation 'com.google.android.gms:play-services-base:17.1.0'
型
以及拥有
apply plugin: 'com.google.gms.google-services'
型
我错过了什么才能正确获得广告ID?
3条答案
按热度按时间laximzn51#
我使用Rxjava来获得帮助,你可以使用Asyntask,协程...
字符串
实现'io.reactivex.rxjava2:rxjava:2.1.7'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
1.使用Kotlin的协程:
型
ajsxfq5m2#
如果有人想知道(像我一样)为什么他们得到
字符串
当试图从使用
viewModelScope
和挂起函数读取它时。以下是您需要做的事情:因为
viewModelScope
默认使用Dispatchers.Main
,你需要它抛出这个错误。选项一:
启动时传递上下文
型
但是在这种情况下,当你想在主线程上做一些工作时,你需要做一些工作。
选项2(我更喜欢这个):
在
suspend
函数中使用CoroutineContext型
oyt4ldly3#
尝试使用以下代码:
字符串