我正在为我的Android应用程序使用解析推送通知。 我按照教程和我下载jar文件,然后将其导入我的项目,我已将此代码添加到我的清单
<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>
此外,我已将application.class添加到我的包中,代码为
public class Application extends android.app.Application {
public Application() {
}
@Override
public void onCreate() {
super.onCreate();
// Initialize the Parse SDK.
Parse.initialize(this, "zzxxxxxxxxxxxxxxVv", "wyxxxxxxxCElxxxxxxx");
// Specify a Activity to handle all pushes by default.
PushService.setDefaultPushCallback(this, MainActivity.class);
// Save the current installation.
ParseInstallation.getCurrentInstallation().saveInBackground();
}
}
在我的主要活动中,我这样做
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ParseAnalytics.trackAppOpened(getIntent());
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
Log.e("MainActivity", "oncreate");
setContentView(R.layout.activity_main);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
有些人说它在清单中的应用程序中名称attribut有问题,所以我用我的pacakge名称引用了这一行
<application
android:name="com.test.pushnotificationTest.Application"
在解析仪表板中,当我将应用程序安装到新设备中时,我获得了新的入口仪表板..但是当我尝试发送推送通知时,我没有得到它。 我需要添加brodcast接收器吗?但它之前使用相同的代码没有广播 帮帮我们
答案 0 :(得分:3)
解析api有时滞后于Android的推送消息传递... 当我签署我的apk时,我得到推送通知..再次使用签名的apk进行尝试。
答案 1 :(得分:3)
解析通知程序使用端口号8253。 如果它在您的网络中被阻止,则不会收到通知! 所以试试其他互联网连接...这就是我解决这个问题的方法!
答案 2 :(得分:1)
应该有2个接收器标签。另一个应该是这样的
<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: If you change the package name of this sample app,
change "com.parse.tutorials.pushnotifications" in the lines
below to match the new package name.
-->
<category android:name="com.example.ifis" />
</intent-filter>
</receiver>
答案 3 :(得分:0)
将此添加到onCreate
上的委托或活动中ParsePush.subscribeInBackground("[channel name]", new SaveCallback() {
@Override
public void done(ParseException e) {
if (e == null) {
Log.d("com.parse.push", "successfully subscribed to the broadcast channel.");
} else {
Log.e("com.parse.push", "failed to subscribe for push", e);
}
}
});