在Android上解析推送通知

时间:2013-11-28 17:03:07

标签: android parsing push-notification android-notifications

我正在创建一个将使用Parse.com推送通知的应用程序,但它不像指南显示那样工作。

问题是,我已经将Parse推送活动设置得很好,注册了新安装,并且能够看到用户订阅了哪些频道。我能够从解析中收到推送通知,但无法从我的应用程序发送。

logcat中没有错误,并解析了发送推送的记录,但显示该频道没有“订阅者”。

在我的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发送的推送的唯一变化是“完整数据”字段

Parse Push

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" }**

提前感谢任何帮助/想法

3 个答案:

答案 0 :(得分:20)

您应该从网站parse.com上的解析设置启用推送通知

App - &gt;设置 - &gt;推送通知 - &gt;启用客户端推送(应该打开)

答案 1 :(得分:1)

在我的情况下,我在packageName的{​​{1}}中定义了一个AndroidManifest.xml ...它花了3个小时来实现错误。也许它可以帮助:))

答案 2 :(得分:0)

您只需从模拟器中卸载应用程序,然后在gradle enter image description here

中验证包的名称

enter image description here

支持applicationId&#34; Your Package&#34;在Android清单enter image description here

中是相同的