gpt4 book ai didi

android - AdvertisingIdClient getAdvertisingIdInfo 永远挂起

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:29:28 25 4
gpt4 key购买 nike

我正在尝试从 Google Play 服务 API 获取广告 ID。这是一个示例代码:

...
import com.google.android.gms.ads.identifier.AdvertisingIdClient;
import com.google.android.gms.common.GooglePlayServicesNotAvailableException;
import com.google.android.gms.common.GooglePlayServicesRepairableException;
...

public class MyActivity extends Activity {

@Override
protected void onStart() {
super.onStart();
Thread thr = new Thread(new Runnable() {
@Override
public void run() {
try {
Context ctx = MyActivity.this.getApplicationContext();
AdvertisingIdClient.Info adInfo = AdvertisingIdClient.getAdvertisingIdInfo(ctx);
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (GooglePlayServicesRepairableException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (GooglePlayServicesNotAvailableException e) {
e.printStackTrace();
}
});

thr.start();
synchronized (thr) {
try {
thr.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}

当我调用 getAdvertisingIdInfo 方法时,应用程序永远挂起(无论是否使用调试器)。

我使用的是 Windows ADT 22.3、Android SDK API 19、Google Play SDK 修订版。 16、Android 4.4.2 Nexus 设备。我正在按照此处所述集成 API:https://developer.android.com/google/play-services/id.html

可能是什么原因?

最佳答案

我找到了原因。它不应阻止 onStart() 处理程序,因为阻止的上下文会阻止获取 ID 设置中的 Play API。固定代码如下所示:

@Override
protected void onStart() {
super.onStart();
Thread thr = new Thread(new Runnable() {
@Override
public void run() {
try {
Context ctx = MyActivity.this.getApplicationContext();
AdvertisingIdClient.Info adInfo = AdvertisingIdClient.getAdvertisingIdInfo(ctx);
finished(adInfo);
} catch (...) {
// All exceptions blocks
}

finished(null);
}
});

thr.start();
}

private void finished(final AdvertisingIdClient.Info adInfo){
if(adInfo!=null){
// In case you need to use adInfo in UI thread
runOnUiThread(new Runnable() {
@Override
public void run() {
// Do some stuff with adInfo
}
});
}
}

如果官方说明有这样的使用说明会很有帮助。

关于android - AdvertisingIdClient getAdvertisingIdInfo 永远挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23379879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com