无法在Android上接收Parse推送通知

时间:2015-03-12 08:13:48

标签: android parse-platform push-notification

我正在开发简单的Android应用程序和非常新的解析。我在添加后端功能时遵循了解析文档。 Parse CORE是一个简单的部分,但我无法从Android设备发送推送通知。但是从解析仪表板发送时会收到推送通知。 我的清单文件如下:

    <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.WAKE_LOCK" />
        <uses-permission android:name="android.permission.VIBRATE" />
        <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
        <uses-permission android:name="android.permission.GET_ACCOUNTS" />
        <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
        <uses-permission android:name="com.google.android.c2dm.permission.SEND" />

        <!--
          IMPORTANT: Change "com.parse.starter.permission.C2D_MESSAGE" in the lines below
          to match your app's package name + ".permission.C2D_MESSAGE".
        -->
        <permission android:protectionLevel="signature"
            android:name="loaniistar.loaniistar.permission.C2D_MESSAGE" />
        <uses-permission android:name="loaniistar.loaniistar.permission.C2D_MESSAGE" />

<service android:name="com.parse.PushService" />
        <receiver android:name="com.parse.ParseBroadcastReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.USER_PRESENT" />
            </intent-filter>
        </receiver>
        <receiver android:name="com.parse.ParsePushBroadcastReceiver"
            android:exported="false">
            <intent-filter>
                <action android:name="com.parse.push.intent.RECEIVE" />
                <action android:name="com.parse.push.intent.DELETE" />
                <action android:name="com.parse.push.intent.OPEN" />
            </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="loaniistar.loaniistar" />
            </intent-filter>
        </receiver>

申请类:

public class MApplication extends Application {

    String applicationiId = "5npdddECsGdDk49OttttuHq6iZdZpddI0cHDsz";
    String clientKey = "SjF1BWamssstycthSjf2dddduhcuwW2VccccCCuFlE";

    public UserAccounts userAccount = null;

    @Override
    public void onCreate() {
        super.onCreate();

        Parse.enableLocalDatastore(this);
        ParseCrashReporting.enable(this);
        Parse.initialize(this, applicationiId, clientKey);
        PushService.startServiceIfRequired(this);
    }

}

订阅活动类中的频道:

ParsePush.subscribeInBackground("manager", new SaveCallback() {
                    @Override
                    public void done(ParseException e) {
                        if (e == null) {

                        }
                        else
                        {
                            btnLoginEnable();
                        }
                    }
                });

在另一个活动类中发送推送通知:

 // Sending Push
                    ParsePush push = new ParsePush();
                    push.setChannel("manager");
                    push.setMessage(m.getMessage().substring(0, (int) m.getMessage().length() / 3));
                    //push.sendInBackground();
                    push.sendInBackground(new SendCallback() {
                        @Override
                        public void done(ParseException e) {
                            if(e == null)
                            {
                                Toast.makeText(getActivity(), "Notification sent", Toast.LENGTH_SHORT).show();
                            }
                            else {
                                Toast.makeText(getActivity(), "Notification Not sent", Toast.LENGTH_SHORT).show();
                            }
                        }
                    });

在“安装”类中添加了行,GCMSenderId为空!!这是问题吗? 请帮我解释为什么我从Android设备发送时无法收到通知? 使用的Libs: 螺栓,Android的1.1.4.jar 解析-1.8.2.jar ParseCrashReporting-1.8.2.jar

1 个答案:

答案 0 :(得分:1)

如果你刚刚在Parse中创建了App并集成在你的应用程序中,它通常不会立即起作用同样的事情发生在我身上。我没有收到数据,但过了一段时间,当我看到Parse Dashboard时,我收到了请求

大约需要20分钟。 您可以尝试查看Parse Analytics。(如果您已实施)如果Parse在您的Analytics Dashboard中显示请求,那么它将完全正常