我们如何在同一个应用程序中实现 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 以及解析通知?的主要内容,如果未能解决你的问题,请参考以下文章

使用 GCM 在 IO 中实现推送通知

Unite 2018 | 《崩坏3》:在Unity中实现高品质的卡通渲染(上)

在我的 android 应用中实现 Google Cloud Messaging

如何在 Android 上实现 XMPP Server 以及与 GCM 的通信?

当应用程序未运行时,GCM 推送通知未在某些设备中显示

如何在 RESTful WCF API 中实现 HMAC 身份验证