解析推送通知只是工作在模拟器模拟器、通知、工作

2023-09-07 18:10:25 作者:笑いと目を (笑眼)

我需要帮助,因为我正在与解析推送通知的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/>
      &所述; /意图滤光器>
    < /接收器>
 
自由职业模拟器开发者游戏下载 自由职业模拟器开发者中文版v1.8 安卓版 极光下载站

和我的$ 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();

            }
        }
    });