在解析中,发送的推送始终为0

时间:2015-08-31 08:40:55

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

对于我尝试发送的所有推送通知,状态始终为“成功”,但没有任何设备到达任何设备。

在我的解析仪表板中,安装不为空(有5个)。

“Client Push Enabled”设置为“Yes”(尝试使用Yes和No发送)。

我尝试通过解析仪表板和django发送。我尝试过针对“所有人”和“频道”。在所有情况下,状态为绿色,但“推送已发送”为0。

这个问题已被问过几次,但没有一个答案对我有用。

以下是与我最接近的情况的问题:Parse pushes not being sent 然而,这个问题也没有得到回答。

1 个答案:

答案 0 :(得分:1)

我也面临这个问题。 将0个收件人作为推送发送的原因是因为在当前情况下,尽管您在安装表中看到了条目,但仍不会将推送发送给任何收件人。

原因:您的案例中必须缺少deviceToken字段。

如果表中有安装条目,但所有这些条目都缺少deviceToken,那么解析将不会发送推送通知,因为deviceToken是必需的。

您必须在清单文件中添加以下权限。

<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

以及与解析相关的代码,您必须为GCM添加​​以下代码,以便解析可以获得deviceToken:

<permission
    android:name="your.package.name.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />

<uses-permission android:name="your.package.name.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

    <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="your.package.name" />
        </intent-filter>
    </receiver>