Google Play 서비스 API에서 광고 ID를 얻으려고합니다.AdvertisingIdClient getAdvertisingIdInfo가 영원합니다.
...
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 rev.를 사용하고 있습니다. 16, Android 4.4.2 Nexus 기기 여기에 설명 된대로 API를 통합하려고합니다. https://developer.android.com/google/play-services/id.html
어떤 이유가있을 수 있습니까?
Google의 샘플 코드는 매우 열악합니다. –
그리고 내가 그들의 문서를 따라 가면 phat lint 에러 인'GooglePlayServicesAvailabilityException에 대한 Unreachable catch 블록 '이 생깁니다. 이 예외는 try 문 본문에서 결코 throw되지 않습니다. Windows 개발자의 평생 동안 Microsoft는 최소한 문서를 제대로 문서화했으며 문서에 대한 피드백을 허용했습니다. FFS –
아니면 AsyncTask를 사용하십시오. – RominaV