在安卓设备上解析推送通知

8
我正在制作一个应用,将使用Parse.com的推送通知功能,但是它并不像指南中所示的那样工作。
问题在于,我已经成功设置了Parse推送活动,注册了新的安装,并能够查看用户订阅的频道。我能够从Parse接收推送通知,但无法从我的应用程序发送推送通知。
在logcat中没有错误信息,而Parse记录了推送消息已发送,但显示该频道上“没有订阅者”。
在我的onCreate方法中:
Parse.initialize(MainActivity.this, "***", "***");
    PushService.setDefaultPushCallback(this, MainActivity.class);
    PushService.subscribe(this, "Everyone", MainActivity.class);
    ParseInstallation.getCurrentInstallation().saveInBackground();

推送代码:

ParsePush push = new ParsePush();
    push.setChannel("Everyone");        
    push.setMessage("Hey!");
    push.sendInBackground();

清单文件:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" /> 

<application>
   ....

<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>
</application>

在logcat中没有任何错误,所有东西似乎都已经成功发送,但在解析过程中我收到了以下消息:
“我的推送”
You sent this push notification to 0 recipients.

Targeting : channels includes "Everyone"
Sending date : November 28th, 2013 at 9:40 AM
Expiration : None
Full target : { "channels": { "$in": [ "Everyone" ] } }
Full data : {"alert"=>"Hey!"}

我能看到我发送的推送和parse.com发送的推送之间唯一的区别是“完整数据”字段。
解析推送
Targeting : channels includes "Everyone"
deviceType is "android"
Sending date : November 28th, 2013 at 9:21 AM
Expiration : None
Full target : { "channels": { "$in": [ "Everyone" ] }, "deviceType": "android" }
**Full data : { "alert": "hi" }**

感谢您提前提供的任何帮助/想法。

真的有必要订阅频道吗?我的推送通知在不进行此步骤的情况下就可以工作。 - portfoliobuilder
3个回答

20

您应该在parse.com网站的设置中打开推送通知。

应用程序 -> 设置 -> 推送通知 -> 客户端推送已启用(应该是开启的)


1
在我的情况下,我在AndroidManifest.xml中定义了一个不同于build.gradle中的packageName... 花了3个小时才意识到错误。也许这能帮助 :)

0

只需从模拟器中卸载您的应用程序,然后验证gradle中包名称是否正确 在此输入图片描述

enter image description here

请确保 Android 清单文件中的 applicationId "Your Package" 与 enter image description here 中的一致。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接