2014-02-07 3 views
0

Я работаю над уведомлениями GCM Push для моего приложения. Уведомления GCM push работают в ОС Android 4.0.4, но в планшете HCL ME U1 они не работают. В этом планшете HCL игровой магазин также работает неправильно. Это из-за того, что в планшетах не отображаются сообщения push-уведомления GCM ?.Уведомления GCM push не работают в планшете

Может ли кто-нибудь посоветовать мне, как исправить эту проблему?

+0

playstore тоже не работает должным образом означает? есть ли настроенная учетная запись? можно успешно зарегистрировать таблетку? –

+0

@ con_9 спасибо за ur replay.Google аккаунт настроен в планшете. –

+0

ok, когда u запрашивает регистрацию с планшета, у вас есть действительный идентификатор регистрации? –

ответ

0

удостоверьтесь, что u зарегистрирован таким образом, и идентификатор отправителя ur верен. Затем вы получите вызов public final void onHandleIntent(Intent intent) переопределенного метода вашего класса, расширяющего класс intentservice. Итак, на что вы должны обратить внимание, сообщение об ошибке, которое вы используете с помощью intent.getStringExtra("error");, здесь у вас есть объект цели, вы попали в метод onHandleIntent.Это скажет вам, почему Google cudnt зарегистрирует ваше устройство.

try { 
      GCMRegistrar.checkDevice(this); 
      GCMRegistrar.checkManifest(this); 
      //String regId = GCMRegistrar.getRegistrationId(this); 
      SharedPreferences sharedPrefs = this.getSharedPreferences(
        getApplicationContext().getPackageName(), Context.MODE_PRIVATE); 
      //String regId = sharedPrefs.getString(myRegKey, ""); 
      //if(regId.equals("")) 
      { 
       Intent registrationIntent = new Intent("com.google.android.c2dm.intent.REGISTER"); 
       registrationIntent.putExtra("app", PendingIntent.getBroadcast(this, 0, new Intent(), 0)); 
       registrationIntent.putExtra("sender", Your sender id here); 
       startService(registrationIntent); 
      } 

     } catch (Exception ex) { 
      ex.printStackTrace(); 
    } 

Edit1

@Override 
     public final void onHandleIntent(Intent intent) { 
      try { 
        String action = intent.getAction(); 
        if (action.equals("com.google.android.c2dm.intent.REGISTRATION")) { 
         handleRegistration(intent); 
        } else if (action.equals("com.google.android.c2dm.intent.RECEIVE")) { 
         onMessage(this, intent); 
        } 
       } catch (Exception ex) { 
      ex.printStackTrace(); 
       } 
     } 
protected void handleRegistration(Intent intent) { 
     String registrationId = intent.getStringExtra("registration_id"); 
     String error = intent.getStringExtra("error"); 
     String unregistered = intent.getStringExtra("unregistered"); 
//rest of code 
} 
protected void onMessage(Context context, Intent intent) { 
     String title = intent.getStringExtra("title"); 
//rest of code 
} 

Можете ли вы сказать мне значения RegistrationID, ошибки, незарегистрированный?

+0

как получить идентификатор регистрации в вашем коде? –

+0

переопределить метод HandleIntent и использовать намерение.getStringExtra ("registration_id"); –

+0

хорошо, я попробую ваш код. –

Смежные вопросы