我们如何在同一个应用程序中实现 GCM 以及解析通知?
Posted
技术标签:
【中文标题】我们如何在同一个应用程序中实现 GCM 以及解析通知?【英文标题】:How we can implement GCM as well as parse notification in same application? 【发布时间】:2016-06-30 09:59:48 【问题描述】:我的应用有一个第三方库,在这个库中实现了解析通知的通知。
但应用需要来自 GCM 的一些通知。
那么我们如何在同一个项目中实现两个接收器。
有人知道在同一个应用程序中实现这两种通知吗?
如果可以的话怎么办?
请帮帮我。
提前谢谢你。
【问题讨论】:
有什么理由需要使用不同的推送通知服务? 是的,我的应用程序使用的库和 gcm 解析使用。 【参考方案1】:据我所知,您只需要为 GCM 创建一个新的广播接收器。
或者甚至在您现有的验证中添加操作验证。例如,在下面的代码中,我通过检查意图操作来检查即将到来的操作是来自 GCM 的注册推送还是我的推送。
if (intent != null)
String action = intent.getAction();
Log.w(TAG, "Registration Receiver called");
if ("com.google.android.c2dm.intent.REGISTRATION".equals(action))
Log.w(TAG, "Received registration ID");
final String registrationId = intent.getStringExtra("registration_id");
String error = intent.getStringExtra("error");
Log.d(TAG, "dmControl: registrationId = " + registrationId + ", error = " + error);
// TODO Send this to my application server
else
//Your code here
您的过滤器将类似于...
<receiver
android:name="com.myapp.push.ExternalReceiver"
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="com.myapp.blablabla" />
</intent-filter>
</receiver>
【讨论】:
如果我创建了两个不同的广播,那么两者都在同一个应用程序中工作?并且两者都有相同的意图过滤器 然后也可以工作吗? 您可以根据需要创建任意数量的广播,是的,所有广播都将同时收听事件。你为什么不创建一个动作验证?像这样 String action = intent.getAction(); 如果我们同时使用两个接收器,则会出现如下错误:- 无法创建服务 com.parse.PushService:java.lang.NullPointerException:尝试调用虚拟方法 'android.content.Context com. parse.ParsePlugins$Android.applicationContext() 在同一个广播类中创建一个action验证怎么样?尝试通过这样做覆盖您的 onPushReceive()...***.com/questions/28959811/…以上是关于我们如何在同一个应用程序中实现 GCM 以及解析通知?的主要内容,如果未能解决你的问题,请参考以下文章
Unite 2018 | 《崩坏3》:在Unity中实现高品质的卡通渲染(上)
在我的 android 应用中实现 Google Cloud Messaging