Seguito con precisione Google's GCM example ma con errori frustranti. Non ho trovato la risposta qui, quindi ho pensato di documentarlo per riferimenti futuri.Il metodo di registrazione di Google Cloud Messaging non funziona con IOException (MAIN_THREAD)
Ero abbastanza sicuro di avere il manifest impostato correttamente con le autorizzazioni corrette ecc. (Seguendo l'esempio precedente alla lettera) ... ma questo codice ha sempre causato una IOException con la spiegazione "MAIN_THREAD".
String regid = "";
try {
GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(getApplicationContext());
String sender_id = getResources().getString(R.string.GCM_sender_id);
regid = gcm.register(sender_id);
Log.d(TAG, "Device registered, registration id=" + regid);
}
catch (IOException ex) {
Log.e(TAG, "Device registration failed", ex);
}
stavo cercando di trovare il problema facendo un passo attraverso, così naturalmente eseguito questo codice sul thread principale. A posteriori, la risposta è ovvia ... ma la inserirò qui sotto.
gcm.register (SENDER_ID) (ma meno ogni giorno!); in doInBackground ma non è ancora possibile registrare l'app e lanciare IOException –