首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在客户端获取GCM令牌时出错

在客户端获取GCM令牌时出错
EN

Stack Overflow用户
提问于 2016-07-25 05:13:48
回答 1查看 1K关注 0票数 1

包装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:中看不到任何日志

EN

回答 1

Stack Overflow用户

发布于 2016-07-25 05:29:24

,试试这个

compile 'com.google.android.gms:play-services-gcm:9.0.2'中添加build.gradle依赖项

代码语言:javascript
复制
 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("");
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38560150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档