第一,AndroidManifest.xml的ParseBroadcastReceiver的intent-filter要ㄕ對:
<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.ParsePushBroadcastReceiver"
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>
第二,記得把ParsePushBoradcastReceiver寫進去AndroidManifest.xml
官方文件沒有教你寫進去,是我自己開Debug Log跟追SDK Code之後才發現,發送Notification的人是ParsePushBoradcastReceiver,但它沒有權限接受Broadcast。
搞不好過一陣子官方就會把文件全部更新到正確,而這篇文章則是紀念這一個小時的自己到底發生了什麼事情;不過好險Parse把SDK也Open Source,某種程度也是鼓勵開發者發現Bug時先別急著回報,可以幫忙它們修一點Bug。
沒有留言:
張貼留言