Push-уведомление GCM не восстановлено

1

Ниже вы можете найти файл манифеста, что-то не так с настройкой классов уведомлений GCM push?

никакое уведомление не получено вообще на устройствах Android, но устройства Apple получают уведомление

 package="ac.iec"
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>

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

<uses-permission android:name="ac.iec.permission.C2D_MESSAGE"/>
    <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="ac.iec"/>
        </intent-filter>
    </receiver>
           <service
        android:name=".pushnotification.GCMIntentService"
        android:exported="false">
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE"/>
        </intent-filter>
    </service>
    <service
        android:name=".pushnotification.MyInstanceIDListenerService"
        android:exported="false">
        <intent-filter>
            <action android:name="com.google.android.gms.iid.InstanceID"/>
        </intent-filter>
    </service>
Теги:
push-notification
android-notifications
google-cloud-messaging

2 ответа

1
Лучший ответ

Вы пропустили несколько user permisssion и reciver, установленных таким образом.

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

это разрешение установить

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

это пользовательское разрешение

<uses-permission android:name="your package.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.VIBRATE" />

этот код установлен в сторону application.

 <!-- GCM Receiver -->
   <!-- this package name set your broadcast receiver class -->
    <receiver

        android:name="package name .GcmBroadcastReceiver"
        android:permission="com.google.android.c2dm.permission.SEND" >
        <intent-filter>

            <!-- Receives the actual messages. -->
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <!-- Receives the registration id. -->
            <action android:name="com.google.android.c2dm.intent.REGISTRATION" />

            <category android:name="main package name" />
        </intent-filter>
    </receiver>

попробуйте этот код в вашем файле манифеста. Благодарю.       

0
Тег

<receiver> и тег <services> должны находиться в теге <application>.

Или, если вы поддерживаете pre-4.4, необходимо добавить действие REGISTRATION. https://developers.google.com/cloud-messaging/android/client

Если вы хотите поддерживать предустановленные устройства KitKat, добавьте следующие действие к объявлению фильтра намерения для получателя:

Ещё вопросы

Сообщество Overcoder
Наверх
Меню