2013-11-28 130 views
8

我正在制作一个应用程序,该应用程序将使用Parse.com推送通知,但它不像指南所示的那样工作。在Android上解析推送通知

问题是,我已经设置好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!"} 

唯一的变化,我可以从我送VS那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" }** 

在此先感谢您的任何帮助/想法

+0

确实需要订阅频道吗?我的推送通知无需执行此步骤即可工作。 – portfoliobuilder

回答

19

您应该打开网站parse.com上的解析设置的推送通知

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

1

在我的情况,我在AndroidManifest.xmlbuild.gradle的不同定义的packageName ...花了3个小时实现错误。也许它可以帮助:)

0

只有你从模拟器卸载应用程序,你确认你的包在gradle这个名字enter image description here

​​

化妆岸说的applicationID“你的包”是一样的在Android清单中enter image description here