无法使用Parse在Android中接收推送通知

Ani*_*udh 7 android push-notification parse-platform

在Parse控制台中,它显示Delivery报告成功,但onPushReceive根本没有被调用.我在这里错过了什么?任何帮助,将不胜感激.

以下是我的代码.清单代码:

    <receiver
        android:name="com.google.android.gms.gcm.GcmReceiver"
        android:permission="com.google.android.c2dm.permission.SEND">
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <category android:name="com.appname" />
        </intent-filter>
    </receiver>

    <service android:name="com.parse.PushService" />

    <receiver android:name="com.appname.PushReceiver"
        android:permission="com.google.android.c2dm.permission.SEND"
        android:exported="false">
        <intent-filter>
            <action android:name="com.parse.push.intent.RECEIVE" />
            <action android:name="com.parse.push.intent.OPEN" />
            <action android:name="com.parse.push.intent.DELETE" />
        </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" />

            <!--IMPORTANT: Change "com.parse.starter" to match your app's package name.-->

            <category android:name="com.appname" />
        </intent-filter>
    </receiver>
Run Code Online (Sandbox Code Playgroud)

PushReceiver类:

public class PushReceiver extends ParsePushBroadcastReceiver
{

@Override
protected void onPushReceive(Context context, Intent intent) {
    super.onPushReceive(context, intent);

    Log.v("Push Receive called...", "");


    if (intent == null)
        return;

    try
    {
        JSONObject json = new JSONObject(intent.getExtras().getString("com.parse.Data"));



    } catch (JSONException e) {
        e.printStackTrace();
    }
}



}
Run Code Online (Sandbox Code Playgroud)

Chu*_*Lin 1

使用设备令牌检查您的安装对象。(也许你应该设置senderID)

下面似乎已弃用。我现在无法从解析文档中找到任何位置。尝试添加以下权限

<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission
        android:name="com.appname.permission.C2D_MESSAGE"
        android:protectionLevel="signature" />
<uses-permission android:name="com.appname.permission.C2D_MESSAGE" />
Run Code Online (Sandbox Code Playgroud)

这些是旧 sdk 版本(可能早于 1.10)所需的权限。

==============新部分====

我在github上找到了push示例代码。 https://github.com/ParsePlatform/PushTutorial/tree/master/Android

下面是使用1.11.0 sdk的项目(1.13.0也可以工作)。 https://dl.dropboxusercontent.com/u/82261293/Appname.zip

根据我的经验,某些设备有可能没有设备令牌。您应该检查它是否已保存。