Ниже вы можете найти файл манифеста, что-то не так с настройкой классов уведомлений 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>
Вы пропустили несколько 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>
попробуйте этот код в вашем файле манифеста. Благодарю.
<receiver>
и тег <services>
должны находиться в теге <application>
.
Или, если вы поддерживаете pre-4.4, необходимо добавить действие REGISTRATION. https://developers.google.com/cloud-messaging/android/client
Если вы хотите поддерживать предустановленные устройства KitKat, добавьте следующие действие к объявлению фильтра намерения для получателя: