解析推送通知只是工作在模拟器 [英] Parse Push Notification just work in Emulator

查看:179
本文介绍了解析推送通知只是工作在模拟器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要帮助,因为我正在与解析推送通知的Andr​​oid,但我的应用程序只是收到通知,仿真器,但不接收真正的设备。

在我的分析显示注册。

这是我的权限和BroadcastReceiver的:

 <使用-权限的Andr​​oid:名称=android.permission.INTERNET对/>
<使用-权限的Andr​​oid:名称=android.permission.ACCESS_NETWORK_STATE/>
<使用-权限的Andr​​oid:名称=android.permission.WAKE_LOCK/>
<使用-权限的Andr​​oid:名称=android.permission.RECEIVE_BOOT_COMPLETED/>
<使用-权限的Andr​​oid:名称=android.permission.VIBRATE/>
<使用-权限的Andr​​oid:名称=android.permission.GET_ACCOUNTS/>
<使用-权限的Andr​​oid:名称=com.google.android.c2dm.permission.RECEIVE/>

<许可安卓的ProtectionLevel =签名
    机器人:名称=org.example.promociones.permission.C2D_MESSAGE/>
<使用-权限的Andr​​oid:名称=org.example.promociones.permission.C2D_MESSAGE/>

 <服务机器人:名称=com.parse.PushService/>
     <接收器的Andr​​oid版本:NAME =com.parse.ParseBroadcastReceiver>
       <意向滤光器>
         <作用机器人:名称=android.intent.action.BOOT_COMPLETED/>
         <作用机器人:名称=android.intent.action.USER_ preSENT/>
       &所述; /意图滤光器>
     < /接收器>

    <接收器的Andr​​oid版本: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();

            }
        }
    });

这篇关于解析推送通知只是工作在模拟器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆