2014-01-31 3 views
1

Я в настоящее время использую GCM для push и получения данных из приложения Android, однако я считаю, что процесс регистрации GCM очень ненадежный, практически в 1/7 раза я получаю идентификатор нулевой регистрации.Насколько надежна регистрация CGMIDID

поэтому вопрос заключается в том, как гарантировать получение идентификатора регистрации GCM.

public String RegisID() { 

      context = getActivity().getApplicationContext(); 

      gcm = GoogleCloudMessaging.getInstance(getActivity()); 
      String msg = ""; 
      try { 
       if (gcm == null) { 
        gcm = GoogleCloudMessaging.getInstance(context); 
       } 
       regid = gcm.register(SENDER_ID); 

       Log.d("111", msg); 

      } catch (IOException ex) { 
       msg = "Error :" + ex.getMessage(); 
      } 

      return regid; 

     } 

ответ

0

Посмотрите на вопрос Android GCM delivery monitoring. В основном суть ответов заключается в том, что Google не гарантирует доставку, но в течение нескольких недель пытается отправить сообщение в зависимости от продолжительности, установленной в сообщении.

Если вы действительно хотите подтвердить, было ли сообщение доставлено или нет, введите идентификатор push в самом сообщении push. При отправке сообщения с вашего сервера сохраните отметку времени, соответствующую этому идентификатору push. Когда пользователь получает push-сообщение, отправьте сообщение на ваш сервер (с идентификатором push и другим параметром), указав, что получено push-сообщение с этим конкретным идентификатором push.

На стороне сервера отслеживать отметку времени. Если разница между меткой времени push-сообщения и текущим временем пересекает установленное ограничение, отправьте это конкретное сообщение снова с вашего сервера. Его суетливый метод!

Надеюсь, это даст вам некоторую идею.

+0

спасибо за быстрый ответ, однако вы, кажется, пропустили мой вопрос. я спрашиваю о идентификаторе регистрации для каждого мобильного телефона. кажется, что услуга недоступна больше, чем она должна. надежность отправки и приема данных по gcm хороша. – user2652614

+0

Спасибо за разъяснение. Ваш вопрос касается первого шага. Какую версию ANdroid вы тестируете? –

+0

Min api 12, выполняющий большую разметку на устройствах v4.3 и v4.2.2 – user2652614

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