Счетчик значков Sony, Samsung Android Oreo и.пирог - PullRequest
0 голосов
/ 14 февраля 2019

Я работаю над приложением для Android, мне нужно показать учетную запись в главном значке приложения, в android oreo работает класс Notification Badge, но в android 9 в гуглпикселе его не показывает, а вSony Xperia XZ2 с android Pie не работает или не показывает значок непрочитанных уведомлений.

Я пробовал использовать сторонние библиотеки, такие как ShortcutBadger и т.п., но они не совместимы с новыми версиями Android

NotificationChannel fyfChannel = new NotificationChannel(FYF_CHANNEL__ID, FYF_CHANNEL_NAME, NotificationManager.IMPORTANCE_HIGH);
    fyfChannel.enableLights(true);
    fyfChannel.enableVibration(true);
    fyfChannel.setLightColor(Color.GREEN);
 fyfChannel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);
    fyfChannel.setShowBadge(true);
    AudioAttributes audioAttributes = new AudioAttributes.Builder().setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION).setUsage(AudioAttributes.USAGE_NOTIFICATION).build();
    fyfChannel.setSound( Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.audio1), audioAttributes);
    getManager().createNotificationChannel(fyfChannel);

1 Ответ

0 голосов
/ 30 апреля 2019

Пожалуйста, попробуйте это:

String NOTIF_CHANNEL_ID = "my_notification_channel";

Uri sound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);

        NotificationCompat.Builder notifBuilder = new NotificationCompat.Builder(this, NOTIF_CHANNEL_ID)
                .setSmallIcon(R.drawable.ic_notification)
                .setContentText(message)
                .setContentTitle("RideWhiz")
                .setAutoCancel(true)
                .setSound(sound)
                .setContentIntent(pendingIntent);

        NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

            // Configure the notification channel.
            NotificationChannel notifChannel = new NotificationChannel(NOTIF_CHANNEL_ID, message, NotificationManager.IMPORTANCE_DEFAULT);
            notifChannel.setDescription(message);
            notifChannel.enableLights(true);
            notifChannel.setLightColor(Color.GREEN);
            notifChannel.setVibrationPattern(new long[]{0, 1000, 500, 1000});
            notifChannel.enableVibration(true);
            notificationManager.createNotificationChannel(notifChannel);
        }

        notificationManager.notify((int)System.currentTimeMillis(), notifBuilder.build());
...