我有一个带有自制推送提供商的产品。我们尝试将parse.com添加为提供者。
ios没问题(os管理推送,一切都与Unity插件一起工作)。
但是我对android非常困惑,我尝试了很多不同的东西,但是我从来没有从解析和推送使用相同的配置。我整合了解析android插件1.8.3,在清单中添加所有数据,修改了Application类到init Parse,一切运行良好。安装数据将被发送到解析。我可以用仪表板发送推送,我有“这将被发送到1个设备”但发送后状态成功“0推送发送”。没有错误,没有任何附加在设备上。
我在哪里可以找到为什么我定位1个设备以及为什么会发送0个推送?是否真的可以有2个不同的服务来管理com.google.android.c2dm.intent.RECEIVE和com.google.android.c2dm.intent.REGISTRATION?
清单推送部分:
<service android:name="com.parse.PushService" />
<receiver android:name="com.parse.ParseBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.USER_PRESENT" />
</intent-filter>
</receiver>
<receiver android:name="com.parse.ParsePushBroadcastReceiver" android:exported="false">
<intent-filter>
<action android:name="com.parse.push.intent.RECEIVE" />
<action android:name="com.parse.push.intent.DELETE" />
<action android:name="com.parse.push.intent.OPEN" />
</intent-filter>
</receiver>
<receiver android:name="com.parse.GcmBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="bundleId" />
</intent-filter>
</receiver>
<!-- GCM homemade notifications -->
<service android:name="com.homemade.unityApp.notifications.UnityGCMReceiverService" />
<receiver android:name="com.homemade.unityApp.notifications.UnityGCMCustomBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="bundleId" />
</intent-filter>
</receiver>
答案 0 :(得分:1)
是的,可以在同一个应用程序上进行两次推送
您必须按照官方指南https://developer.android.com/google/gcm/client.html
中的说明在permission
和users-permission
上设置清单
并在清单上有两个receive
,其中包含相应的intent-filter
两个SDK都必须注册推送。一个例子是我工作的应用程序,我们有:
GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(context);
String regid = gcm.register(GCMID);
和
Localytics.registerPush(GCMID);
来自我们自己的服务器,一个来自localytics push。我相信parse.com将采用registerPush
方法。
在这两种情况下,BroadcastReceiver
都会收到消息,因此有必要在推送消息中放置一个令牌来过滤哪些消息应该忽略该消息以及哪些消息应该对其起作用。
答案 1 :(得分:0)
我找到了解决方案,我已多次添加但没有成功。 我在发送安装数据时试图在java代码中添加senderId并且它有效。我真的不知道为什么只是添加meta不工作,也许我错过了什么。
所以原来的清单还可以,parsegcmbroadcaster似乎正确地过滤了通知。