2015-10-14 5 views
3

Я использую этот link для проверки моих push-уведомлений. Прошлой ночью он отлично справился, проснулся сегодня утром, и я больше не получаю push-уведомления. Я тестировал его, прежде чем писать новый код. Устройство, используемое для тестирования, - Samsung Galaxy S5, ОС - Lollipop.Не получать push-уведомления от GCM (Android)

Вот мой манифест, дайте мне знать, если вам нужно увидеть какие-либо из моих услуг.

<permission 
     android:name=".permission.C2D_MESSAGE" 
     android:protectionLevel="signature" /> 

    <uses-permission android:name=".permission.C2D_MESSAGE" /> 

    <application 
     .... 
     .... 

     <receiver 
      android:name="com.google.android.gms.gcm.GcmReceiver" 
      android:exported="true" 
      android:permission="com.google.android.c2dm.permission.SEND"> 
      <intent-filter> 
       <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
       <category android:name="com.fullpackage.name.gcm" /> 
      </intent-filter> 
     </receiver> 

     <service 
      android:name=".services.MyGcmListenerService" 
      android:exported="false"> 
      <intent-filter> 
       <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
      </intent-filter> 
     </service> 
     <service 
      android:name=".services.MyInstanceIDListenerService" 
      android:exported="false"> 
      <intent-filter> 
       <action android:name="com.google.android.gms.iid.InstanceID" /> 
      </intent-filter> 
     </service> 

У меня нет ошибок, и он говорит, что сообщение успешно отправлено с моего сервера и этой тестовой ссылки выше. Я попытался удалить приложение и создать новый токен, и он все еще не работает. Я также могу получить мой токен успешно каждый раз, когда загружаю приложение.

ответ

3

Посмотрите на это official tutorial. Кажется, вы пропустили, чтобы добавить имя пакета в разрешения.

<permission 
    android:name="your.package.name.permission.C2D_MESSAGE" 
    android:protectionLevel="signature" /> 

<uses-permission android:name="your.package.name.permission.C2D_MESSAGE" /> 

Также источники твоего MyGcmListenerService и MyInstanceIDListenerService было бы полезно, чтобы помочь (как получить и обработать маркер и т.д.).

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

+0

Я пробовал в обоих направлениях. Быстрый '.permission.C2D_MESSAGE' и полное описание' my.package.name.permission.C2D_MESSAGE'. Учебник был прочитан полностью –

+0

Перезагрузка устройства была всем, в чем я нуждался. Благодаря! –

+0

Так что, используя "." как начало нормально, не так ли? Если да, то почему при проверке того, что разрешение предоставлено, оно говорит, что оно не предоставляется? Я спросил об этом здесь: http://stackoverflow.com/q/33463556/878126 –

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