Sto cercando di ottenere ID pubblicità dall'API dei servizi di Google Play. Ecco un esempio di codice:AdvertisingIdClient getAdvertisingIdInfo si blocca per sempre
...
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();
}
}
}
}
Quando sto chiamando il metodo getAdvertisingIdInfo, l'applicazione si blocca per sempre (non importa con debugger o meno).
Utilizzo Windows ADT 22.3, Android SDK API 19, Google Play SDK rev. 16, dispositivi Android 4.4.2 Nexus. Sto integrando API come descritto qui: https://developer.android.com/google/play-services/id.html
Quale potrebbe essere un motivo?
Sono d'accordo, il codice di esempio di Google su questo è piss povero! –
e quando seguo il loro documento, ottengo un bel errore di filaccia di phat 'Blocco catch non raggiungibile per GooglePlayServicesAvailabilityException. Questa eccezione non viene mai generata dal corpo della dichiarazione try '. In tutta la mia vita di sviluppatore di Windows, Microsoft ha almeno documentato correttamente le loro cose e ha permesso di ottenere un feedback sui documenti! FFS –
O meglio, usa un AsyncTask. – RominaV