具有Parse的GCM接收器

时间:2015-01-18 15:20:49

标签: android parse-platform google-cloud-messaging

嗨,我知道这个问题已被多次询问,但我的要求有点不同所以请耐心等待。

我在Android应用程序中使用了两个不同的库。一个用于解析推送通知,其具有以下声明:

<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="com.airloyal.ladooo" />
            </intent-filter>
        </receiver>

并且其他接收者的声明是:

<receiver
            android:name="com.google.android.gcm.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="com.airloyal.ladooo" />
            </intent-filter>
        </receiver>

我绝对需要我的应用程序中的两个库,因此删除一个不是一个选项。我将两个接收器用于不同的目的。但是,当我宣布两个接收器都存在冲突并且我无法接收任何推送通知时。

有人能指出我正确的方向吗?

P.S两个库都是jar文件,我无法控制两者的接收器。所以转发不是一种选择。

任何帮助将不胜感激。谢谢

1 个答案:

答案 0 :(得分:1)

如果广播接收器彼此冲突,您可以尝试在[{1}}中的priority

中设置接收器的AndroidManifest.xml

仅当您确实需要强制接收广播的特定订单,或者希望强制Android更喜欢某个活动而不是其他活动时,才使用此属性。

该值必须为<intent-filter>,例如“100”。 integer默认值为0.该值必须大于-1000且小于1000。

示例代码:

Higher numbers have a higher priority.

另外,另一种解决方法,请参阅here