2013-11-28 128 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