@override protected void onhandleintent(intent intent) { sharedpreferences sharedpreferences = preferencemanager.getdefaultsharedpreferences(this); try { // in (unlikely) event multiple refresh operations occur simultaneously, // ensure processed sequentially. synchronized (tag) { // [start get_token] // call goes out network retrieve token, subsequent calls // local. instanceid instanceid = instanceid.getinstance(this); string token = instanceid.gettoken(getstring(r.string.gcm_defaultsenderid), googlecloudmessaging.instance_id_scope, null); log.i(tag, "gcm registration token: " + token); // todo: implement method send registration app's servers. sendregistrationtoserver(token); // subscribe topic channels subscribetopics(token); // should store boolean indicates whether generated token has been // sent server. if boolean false, send token server, // otherwise server should have received token. sharedpreferences.edit().putboolean(quickstartpreferences.sent_token_to_server, true).apply(); // [end get_token] } } catch (exception e) { log.d(tag, "failed complete token refresh", e); // if exception happens while fetching new token or updating our registration data // on third-party server, ensures we'll attempt update @ later time. sharedpreferences.edit().putboolean(quickstartpreferences.sent_token_to_server, false).apply(); } // notify ui registration has completed, progress indicator can hidden. intent registrationcomplete = new intent(quickstartpreferences.registration_complete); localbroadcastmanager.getinstance(this).sendbroadcast(registrationcomplete); }
app got crash while accessing token using instanceid.gettoken method , device not connected internet.
calling service manifest
<service android:name="com.sample.gcmclient.registrationintentservice" android:exported="false">
logcat details
06-03 12:50:46.070 3067-4207/? d/gcm﹕ gcmservice start intent { act=com.google.android.c2dm.intent.register pkg=com.google.android.gms cmp=com.google.android.gms/.gcm.gcmservice (has extras) } com.google.android.c2dm.intent.register 06-03 12:50:46.080 9974-9974/com.sample.gcmclient d/dalvikvm﹕ dexopt: couldn't find field landroid/os/message;.sendinguid 06-03 12:50:46.080 9974-9974/com.sample.gcmclient w/dalvikvm﹕ vfy: unable resolve instance field 116 06-03 12:50:46.080 9974-9974/com.sample.gcmclient d/dalvikvm﹕ vfy: replacing opcode 0x52 @ 0x0000 06-03 12:50:46.130 3067-4223/? w/gcm﹕ missmatched messenger 06-03 12:50:46.170 9974-10176/com.sample.gcmclient d/regintentservice﹕ failed complete token refresh java.io.ioexception: service_not_available @ com.google.android.gms.iid.zzc.zzb(unknown source) @ com.google.android.gms.iid.zzc.zza(unknown source) @ com.google.android.gms.iid.instanceid.zzc(unknown source) @ com.google.android.gms.iid.instanceid.gettoken(unknown source) @ com.sample.gcmclient.registrationintentservice.onhandleintent(registrationintentservice.java:68) @ android.app.intentservice$servicehandler.handlemessage(intentservice.java:65) @ android.os.handler.dispatchmessage(handler.java:99) @ android.os.looper.loop(looper.java:137) @ android.os.handlerthread.run(handlerthread.java:60) 06-03 12:50:53.080 4378-4380/? d/dalvikvm﹕ gc_concurrent freed 101k, 19% free 5091k/6248k, paused 2ms+2ms, total 17ms 06-03 12:50:53.150 4378-4420/? d/finsky﹕ [179] appstatesreplicator.handlecontentsyncresponse: completed 0 account content syncs 0 successful. 06-03 12:50:53.160 4378-4378/? d/finsky﹕ [1] 5.onfinished: installation state replication succeeded. 06-03 12:51:11.940 3350-3354/? d/dalvikvm﹕ gc_concurrent freed 468k, 22% free 4985k/6344k, paused 2ms+3ms, total 18ms
how fix bug. thank shinurag kr
Comments
Post a Comment