我几个小时都在吃脑筋,找不到答案。 我的问题是我正在尝试从网络上的Parse.com控制台向我的Android设备发送推送通知,当我发送消息没有问题,但如果我尝试发送JSON,那么我将永远不会看到我的通知设备
我正在尝试发送一条简单的JSON消息 - > { “×”: “1”}
我的相关清单代码
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission android:protectionLevel="signature"
android:name="my.app.package.permission.C2D_MESSAGE" />
<uses-permission android:name="my.app.package.permission.C2D_MESSAGE" />
<!-- Parse push notification receiver -->
<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.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="my.app.package" />
</intent-filter>
</receiver>
<receiver android:name="my.app.package.parse.NotificationReceiver" 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>
my.app.package.parse.NotificationReceiver正常存在并成功处理应用程序打开消息通知
我的应用程序的onCreate()运行以下
Parse.enableLocalDatastore(this);
Parse.initialize(this, "..........", ".............");
ParseACL defaultACL = new ParseACL();
defaultACL.setPublicReadAccess(true);
ParseACL.setDefaultACL(defaultACL, true);
ParsePush.subscribeInBackground("everything", new SaveCallback() {
@Override
public void done(ParseException e) {
if (e == null) {
Log.d("com.parse.push", "successfully subscribed to the broadcast channel.");
} else {
Log.e("com.parse.push", "failed to subscribe for push", e);
}
}
});
我的想法已经用完所以请帮忙!
答案 0 :(得分:6)
我的下一个想法解决了我的问题。 似乎JSON消息应该包含标记“alert”,其中包含需要显示为通知的文本值。
如果未指定“alert”标记,则不显示通知。所以我的{"x":"1"}
不会出现,而是
{ "x": "1", "alert": "show me to the user" }
正常显示。 不幸的是,我没有在解析用户指南中找到这个,所以PLEASE Parsers将这个添加到指南中,让其他开发人员不浪费时间。 感谢
答案 1 :(得分:0)
尝试指定您发送的POST类型为application/json
默认情况下,POST的媒体类型为application/x-www-form-urlencoded
。这显然不会被机器识别为JSON。