本文介绍了解析推送通知只是工作在模拟器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要帮助,因为我正在与解析推送通知的Android,但我的应用程序只是收到通知,仿真器,但不接收真正的设备。
在我的分析显示注册。
这是我的权限和BroadcastReceiver的:
<使用-权限的Android:名称=android.permission.INTERNET对/>
<使用-权限的Android:名称=android.permission.ACCESS_NETWORK_STATE/>
<使用-权限的Android:名称=android.permission.WAKE_LOCK/>
<使用-权限的Android:名称=android.permission.RECEIVE_BOOT_COMPLETED/>
<使用-权限的Android:名称=android.permission.VIBRATE/>
<使用-权限的Android:名称=android.permission.GET_ACCOUNTS/>
<使用-权限的Android:名称=com.google.android.c2dm.permission.RECEIVE/>
<许可安卓的ProtectionLevel =签名
机器人:名称=org.example.promociones.permission.C2D_MESSAGE/>
<使用-权限的Android:名称=org.example.promociones.permission.C2D_MESSAGE/>
<服务机器人:名称=com.parse.PushService/>
<接收器的Android版本:NAME =com.parse.ParseBroadcastReceiver>
<意向滤光器>
<作用机器人:名称=android.intent.action.BOOT_COMPLETED/>
<作用机器人:名称=android.intent.action.USER_ preSENT/>
&所述; /意图滤光器>
< /接收器>
<接收器的Android版本:NAME =com.example.promociones.Receiver
机器人:出口=假>
<意向滤光器>
<作用机器人:名称=com.parse.push.intent.RECEIVE/>
<作用机器人:名称=com.parse.push.intent.DELETE/>
<作用机器人:名称=com.parse.push.intent.OPEN/>
&所述; /意图滤光器>
< /接收器>
和我的$ C $注册C:
覆盖
公共无效的onCreate(){
// TODO自动生成方法存根
super.onCreate();
Parse.initialize(这一点,someValue中,someValue中);
。ParseInstallation.getCurrentInstallation()saveInBackground();
ParsePush.subscribeInBackground(pruebas,新SaveCallback(){
@覆盖
公共无效完成(com.parse.ParseException E){
// TODO自动生成方法存根
如果(E!= NULL)
{
Log.d(com.parse.push,香格里拉subscripcion人管FUE exitosa);
}
其他
{
Log.e(com.parse.push,Fallo拉subscripcion推);
}
}
});
}
解决方案
使用以下代替:
//通知解析云计算,这是准备的通知
PushService.setDefaultPushCallback(这一点,MainActivity.class);
ParseInstallation.getCurrentInstallation()。saveInBackground(新SaveCallback(){
@覆盖
公共无效完成(ParseException的E){
如果(E == NULL){
} 其他 {
e.printStackTrace();
}
}
});
I need help, because I am working with Parse Push Notification Android but my application just receives notifications in emulator but not receives in real devices.
In my analytics appears register.
This is my permission and BroadcastReceiver:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission android:protectionLevel="signature"
android:name="org.example.promociones.permission.C2D_MESSAGE" />
<uses-permission android:name="org.example.promociones.permission.C2D_MESSAGE" />
<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>
<receiver android:name="com.example.promociones.Receiver"
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>
And my code of registration:
Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
Parse.initialize(this, "SomeValue", "SomeValue");
ParseInstallation.getCurrentInstallation().saveInBackground();
ParsePush.subscribeInBackground("pruebas", new SaveCallback() {
@Override
public void done(com.parse.ParseException e) {
// TODO Auto-generated method stub
if(e!=null)
{
Log.d("com.parse.push", "La subscripcion al canal fue exitosa");
}
else
{
Log.e("com.parse.push", "Fallo la subscripcion push");
}
}
});
}
解决方案
use the following instead:
// inform the Parse Cloud that it is ready for notifications
PushService.setDefaultPushCallback(this, MainActivity.class);
ParseInstallation.getCurrentInstallation().saveInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
if (e == null) {
} else {
e.printStackTrace();
}
}
});
这篇关于解析推送通知只是工作在模拟器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!