Ani*_*udh 7 android push-notification parse-platform
在Parse控制台中,它显示Delivery报告成功,但onPushReceive根本没有被调用.我在这里错过了什么?任何帮助,将不胜感激.
以下是我的代码.清单代码:
<receiver
android:name="com.google.android.gms.gcm.GcmReceiver"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.appname" />
</intent-filter>
</receiver>
<service android:name="com.parse.PushService" />
<receiver android:name="com.appname.PushReceiver"
android:permission="com.google.android.c2dm.permission.SEND"
android:exported="false">
<intent-filter>
<action android:name="com.parse.push.intent.RECEIVE" />
<action android:name="com.parse.push.intent.OPEN" />
<action android:name="com.parse.push.intent.DELETE" />
</intent-filter>
</receiver>
<receiver
android:name="com.parse.GcmBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<!--IMPORTANT: Change "com.parse.starter" to match your app's package name.-->
<category android:name="com.appname" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
PushReceiver类:
public class PushReceiver extends ParsePushBroadcastReceiver
{
@Override
protected void onPushReceive(Context context, Intent intent) {
super.onPushReceive(context, intent);
Log.v("Push Receive called...", "");
if (intent == null)
return;
try
{
JSONObject json = new JSONObject(intent.getExtras().getString("com.parse.Data"));
} catch (JSONException e) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用设备令牌检查您的安装对象。(也许你应该设置senderID)
下面似乎已弃用。我现在无法从解析文档中找到任何位置。尝试添加以下权限
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission
android:name="com.appname.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.appname.permission.C2D_MESSAGE" />
Run Code Online (Sandbox Code Playgroud)
这些是旧 sdk 版本(可能早于 1.10)所需的权限。
==============新部分====
我在github上找到了push示例代码。 https://github.com/ParsePlatform/PushTutorial/tree/master/Android
下面是使用1.11.0 sdk的项目(1.13.0也可以工作)。 https://dl.dropboxusercontent.com/u/82261293/Appname.zip
根据我的经验,某些设备有可能没有设备令牌。您应该检查它是否已保存。
| 归档时间: |
|
| 查看次数: |
640 次 |
| 最近记录: |