包装nath.prem.com.premgcmproject;
进口android.content.Intent;
导入com.google.android.gms.iid.InstanceIDListenerService;
/** *由prem在22/7/16上创建。*公共类GCMTokenRefreshListenerService扩展InstanceIDListenerService {
//如果令牌被更改,则重新注册设备@覆盖公共无效的onTokenRefresh() {意向=新的意图(此,GCMRegistrationIntentService.class);startService(意图);}}
在客户端中获取GCM令牌时出错
致命例外: IntentService[]
java.lang.IncompatibleClassChangeError: android.support.v4.content.ContextCompat at com.google.android.gms.iid.zzd.zzdL(未知来源)
在…
(未知源)在com.google.android.gms.iid.InstanceID.zza(Unknown源(com.google.android.gms.iid.zzd.)在com.google.android.gms.iid.InstanceID.getInstance(Unknown源)
这是我在获取gcm令牌时遇到的错误
公共类GCMRegistrationIntentService扩展IntentService {//常量以表示公共静态最终字符串REGISTRATION_SUCCESS = "RegistrationSuccess";公共静态最终字符串REGISTRATION_ERROR = "RegistrationError";//类构造函数公共GCMRegistrationIntentService() {Super(“);}@重写受保护的onHandleIntent(意图){//将gcm注册到设备registerGCM();}私有无效registerGCM() {//注册完成意图初始为空意图registrationComplete =空;//寄存器令牌也为空//我们将获得成功的完全注册字符串令牌=空;PreferenceManager.getDefaultSharedPreferences(this);sharedPreferences = SharedPreferences sharedPreferences=sharedPreferences sharedPreferences= instanceid InstanceID = InstanceID.getInstance(this);/从实例id令牌获取令牌= instanceID.getToken(getString(R.string.gcm_defaultSenderId),GoogleCloudMessaging.INSTANCE_ID_SCOPE,null);//在日志中显示令牌,以便我们可以复制它以发送推送通知//您还可以通过将令牌存储到服务器Log.w("GCMRegIntentService",“令牌:”+令牌)来扩展应用程序;//在注册时完成创建意图( registrationComplete =新意图(REGISTRATION_SUCCESS);//将令牌发送给意图//registrationComplete.putExtra(“令牌”,令牌);} catch (异常e) {//如果发生任何错误,则为Log.w("GCMRegIntentService",“注册错误”);registrationComplete =新意图(REGISTRATION_ERROR);}//发送已完成注册的广播
--这是类的java代码
--这是我在project......But中最重要的文件--我在RegistrationIntentService:中看不到任何日志
发布于 2016-07-25 05:29:24
,,试试这个
在compile 'com.google.android.gms:play-services-gcm:9.0.2'中添加build.gradle依赖项
private void registerToGCM() {
new AsyncTask<String, String, String>() {
ProgressDialog progressDialog;
@Override
protected void onPreExecute() {
super.onPreExecute();
progressDialog = new ProgressDialog(LoginActivity.this);
progressDialog.setMessage(getString(R.string.gcm_register_message));
progressDialog.setCancelable(false);
progressDialog.show();
}
@Override
protected String doInBackground(String... params) {
String registryId = null;
try {
InstanceID instanceID = InstanceID.getInstance(getApplicationContext());
registryId = instanceID.getToken(getString(R.string.gcm_defaultSenderId), GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);
} catch (Exception ex) {
Log.e("MAINACIVITY", "gcm register Error " + ex.toString());
}
return registryId;
}
@Override
protected void onPostExecute(String registeredId) {
super.onPostExecute(registeredId);
progressDialog.dismiss();
// perform action here
}
}.execute("");
}https://stackoverflow.com/questions/38560150
复制相似问题