Android 推送通知未从解析中显示?

Android 推送通知未从解析中显示?,android,android-layout,android-fragments,android-activity,push-notification,Android,Android Layout,Android Fragments,Android Activity,Push Notification,我已使用Parse.com发送推送通知。但在这个应用程序中,当我发送推送时,什么都不会出现。我能做些什么来解决这个问题 我正在用不同的名字制作相同类型的应用程序。在以前的应用程序中,通知会出现,但不会出现在本应用程序中 下面是我在java类中添加的推送通知类: public class PushNotificationReceiver extends BroadcastReceiver { @Override public void onReceive(Context c

我已使用Parse.com发送推送通知。但在这个应用程序中,当我发送推送时,什么都不会出现。我能做些什么来解决这个问题

我正在用不同的名字制作相同类型的应用程序。在以前的应用程序中,通知会出现,但不会出现在本应用程序中

下面是我在java类中添加的推送通知类:

public class PushNotificationReceiver extends BroadcastReceiver {
    @Override    
    public void onReceive(Context context, Intent intent) {

        try {
            System.out.println("Amber====>" + intent.getExtras() + "====" + intent.getAction());

            if (intent.getAction().equals(context.getPackageName() + ".UPDATE_STATUS")) {
                JSONObject json = null;

                try {
                    String jStr = intent.getExtras().getString("com.parse.Data");

                    json = new JSONObject(jStr);
                } catch (Exception e) {
                    json = new JSONObject();
                    e.printStackTrace();
                }

                String title = "New alert!";

                if (json.has("adstuck_val")) {
                    SimpleDateFormat formatter = new SimpleDateFormat("MMM dd yy hh:mm aaa", Locale.getDefault());
                    String date = formatter.format(new Date());

                    json.put("date", date);

                    System.out.println("" + json.optInt("case"));

                    title = json.getString("customdata");

                    if (VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
                        showBoardingPassNotif(context, json.optInt("case"), json.optString("adstuck_val"),
                                title, json.optString("link"), json.optInt("id"));
                    } else {
                        generateNotification(context, json.optInt("case"), json.optString("adstuck_val"),
                                title, json.optString("link"), json.optInt("id"));
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
    public void showBoardingPassNotif(final Context context, final int notifType,
                                      final String desc, final String title, String link, final int id) {
        final NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        final Notification notif;

        if (VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            notif = new Notification.Builder(context)
                    .setContentTitle(desc)
                    .setContentText(title)
                    .setSmallIcon(R.drawable.ic_launcher_material)
                    .setStyle(new Notification.BigTextStyle().bigText(title))
                    .setVibrate(new long[]{500,500})
                    .build();
            notif.color = context.getResources().getColor(R.color.orange);
        } else {
            notif = new Notification.Builder(context)
                    .setContentTitle(desc)
                    .setContentText(title)
                    .setSmallIcon(R.drawable.ic_launcher)
                    .setStyle(new Notification.BigTextStyle().bigText(title))
                    .setVibrate(new long[]{500, 500})
                    .build();
        }
        Intent notificationIntent = null;
        PendingIntent contentIntent = null;

        switch (notifType) {
            case 1: {
                //System.out.println("Amber in case 0");
                notificationIntent = new Intent(context, Splash.class);
                notificationIntent.putExtra("caseI", 1);
                contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
                notif.contentIntent = contentIntent;

                break;
            }
            case 2: {
                //System.out.println("Amber in case 0");
                notificationIntent = new Intent(context, Splash.class);
                notificationIntent.putExtra("caseI", 2);
                contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
                notif.contentIntent = contentIntent;

                break;
            }
            case 3: {
                //System.out.println("Amber in case 0");
                notificationIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(link));
                contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
                notif.contentIntent = contentIntent;

                break;
            }
        }

        ParseAnalytics.trackAppOpenedInBackground(notificationIntent);//rackAppOpened(getIntent());

        notif.flags = Notification.FLAG_AUTO_CANCEL;
        nm.notify(id, notif);

    }

    //5feb7a1c-2d8b-45ae-83a4-9037c9a47bb1
    public static void generateNotification(Context context, int notifType,
                                            String desc, String titleStr, String link, final int id) {
        // Show the notification
        long when = System.currentTimeMillis();
        NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        String title = titleStr; //context.getString(R.string.app_name);


        Intent notificationIntent = null;
        PendingIntent contentIntent = null;

        switch (notifType) {
            case 1: {
                notificationIntent = new Intent(context, Splash.class);
                contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
                notificationIntent.putExtra("caseI", 1);
                contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

                break;
            }
            case 2: {
                notificationIntent = new Intent(context, Splash.class);
                notificationIntent.putExtra("caseI", 2);
                contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

                break;
            }
            case 3: {
                notificationIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(link));
                contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);

                break;
            }
        }

        Notification notification/* = new Notification(R.drawable.ic_launcher, message, when)*/;

        ParseAnalytics.trackAppOpenedInBackground(notificationIntent);//rackAppOpened(getIntent());

        NotificationCompat.Builder builder = new NotificationCompat.Builder(
                context);
        notification = builder.setContentIntent(contentIntent)
                .setSmallIcon(R.drawable.ic_launcher).setTicker(desc).setWhen(when)
                .setAutoCancel(true).setContentTitle(title)
                .setContentText(desc).build();

        notification.vibrate = new long[]{500, 500};
        notification.sound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);

        notification.flags =
                Notification.FLAG_AUTO_CANCEL |
                        Notification.FLAG_SHOW_LIGHTS;

        notificationManager.notify(id, notification);
    }
}
以下是我在AndroidManifest.cml文件中添加的内容-

    <!--Parse-->

    <service android:name="com.parse.PushService" />

    <receiver android:name="com.raccoonfinger.fruits.PushNotificationReceiver">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <action android:name="android.intent.action.RECEIVE_BOOT_COMPLETED" />
            <action android:name="android.intent.action.USER_PRESENT" />
            <action android:name="com.raccoonfinger.fruitss.UPDATE_STATUS" />
        </intent-filter>
    </receiver>

    <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.parse.ParsePushBroadcastReceiver"
        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>

    <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" />

            <category android:name="com.raccoonfinger.fruits" />
        </intent-filter>
    </receiver>

    <meta-data
        android:name="com.parse.APPLICATION_ID"
        android:value="@string/parse_app_id" />
    <meta-data
        android:name="com.parse.CLIENT_KEY"
        android:value="@string/parse_client_key" />

    <meta-data
        android:name="com.crashlytics.ApiKey"
        android:value="fce48f279ed5f83910d1cca39605c0ea877ec296" />

</application>


您是否已订阅您的客户?检查
安装
是否在Parse dashboard中启动了deviceToken。您是否已使用您的客户端?检查
安装
在分析仪表板中是否有deviceToken。