我没有收到Oreo和鞋帮的通知

问题描述 投票:0回答:1

我必须在android oreo和鞋面上做通知工作,但它没有显示,我该如何解决我的问题?我试过android developers.com的实现指令,但没有帮助,任何人都可以帮我这个代码?抱歉我的英语不好

if (newCount > 0) {
if (PrefUtils.getBoolean(PrefUtils.NOTIFICATIONS_ENABLED, true)) {
                        Cursor cursor = getContentResolver().query(EntryColumns.CONTENT_URI, new String[]{Constants.DB_COUNT}, EntryColumns.WHERE_UNREAD, null, null);

                        cursor.moveToFirst();
                        newCount = cursor.getInt(0); // The number has possibly changed
                        cursor.close();

                        if (newCount > 0) {
                            String text = getResources().getQuantityString(R.plurals.number_of_new_entries, newCount, newCount);

                            Intent notificationIntent = new Intent(FetcherService.this, HomeActivity.class);
                            PendingIntent contentIntent = PendingIntent.getActivity(FetcherService.this, 0, notificationIntent,
                                    PendingIntent.FLAG_UPDATE_CURRENT);

                            Notification.Builder notifBuilder = new Notification.Builder(MainApplication.getContext()) //
                                    .setContentIntent(contentIntent) //
                                    .setSmallIcon(R.drawable.ic_statusbar_rss) //
                                    .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher)) //
                                    .setTicker(text) //
                                    .setWhen(System.currentTimeMillis()) //
                                    .setAutoCancel(true) //
                                    .setContentTitle(getString(R.string.spaRSS_feeds)) //
                                    .setContentText(text) //
                                    .setLights(0xffffffff, 0, 0);

                            if (PrefUtils.getBoolean(PrefUtils.NOTIFICATIONS_VIBRATE, false)) {
                                notifBuilder.setVibrate(new long[]{0, 1000});
                            }

                            String ringtone = PrefUtils.getString(PrefUtils.NOTIFICATIONS_RINGTONE, null);
                            if (ringtone != null && ringtone.length() > 0) {
                                notifBuilder.setSound(Uri.parse(ringtone));
                            }

                            if (PrefUtils.getBoolean(PrefUtils.NOTIFICATIONS_LIGHT, false)) {
                                notifBuilder.setLights(0xffffffff, 300, 1000);
                            }

                            if (Constants.NOTIF_MGR != null) {
                                Constants.NOTIF_MGR.notify(0, notifBuilder.getNotification());
                            }
                        }
                    } else if (Constants.NOTIF_MGR != null) {
                        Constants.NOTIF_MGR.cancel(0);
                    }
                }
java android notifications
1个回答
1
投票

从Android 8开始,必须将所有通知分配给NotificationChannel。 Here你可以找到它的相关信息。

希望它会有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.