it-swarm.com.ru

Уведомление Android не работает на Android 6.0 (Зефир)

Я внедряю локальное уведомление на Android, и у меня проблема в том, что они не отображаются на Android 6.0 (Samsung S7) .... Я искал решения, но я не нашел ничего для этой проблемы. У меня есть значок в соответствующей папке res/drawable, также я определил заголовок уведомления, текст, мелодию звонка (необработанную папку), но она не отображается ... Вот мой код: 

    Context acontext = getApplicationContext();

    PackageManager pm = acontext.getPackageManager();
    Intent notificationIntent = pm.getLaunchIntentForPackage(acontext.getPackageName());
    notificationIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

    PendingIntent pendingIntent = PendingIntent.getActivity(acontext, 0, notificationIntent, 0);
    int notification_icon = acontext.getResources().getIdentifier("icon", "drawable", acontext.getPackageName());
    int notificationID = 0;

    // Build notification
    Notification noti = new Notification.Builder(acontext)
            .setContentTitle("Title")
            .setContentText("Incoming text")
            .setSmallIcon(notification_icon)
            .setContentIntent(pendingIntent)
            .setLights(Color.RED, 1, 1)
            .build();
    NotificationManager notificationManager = (NotificationManager) acontext.getSystemService(Context.NOTIFICATION_SERVICE);
    // hide the notification after its selected
    noti.sound = Uri.parse("Android.resource://" + acontext.getPackageName() + "/raw/incoming");
    noti.flags |= Notification.FLAG_AUTO_CANCEL;
    notificationManager.notify(notificationID, noti);

Кто-нибудь еще испытывал эту проблему? Любая помощь будет оценена. Спасибо.

5
Tünde

Есть некоторые изменения в новом уведомлении. новая функция NotificationCompat.Builder(this) устарела и требует наличия NotificationChannel для Android или выше. Вы можете попробовать это решение. 

NotificationCompat.Builder mBuilder =
                new NotificationCompat.Builder(mContext.getApplicationContext(), "notify_001");
        Intent ii = new Intent(mContext.getApplicationContext(), RootActivity.class);
        PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, ii, 0);

        NotificationCompat.BigTextStyle bigText = new NotificationCompat.BigTextStyle();
        bigText.bigText(verseurl);
        bigText.setBigContentTitle("Title");
        bigText.setSummaryText("Text in detail");

        mBuilder.setContentIntent(pendingIntent);
        mBuilder.setSmallIcon(R.mipmap.ic_launcher_round);
        mBuilder.setContentTitle("Your Title");
        mBuilder.setContentText("Your text");
        mBuilder.setPriority(Notification.PRIORITY_MAX);
        mBuilder.setStyle(bigText);

        NotificationManager mNotificationManager =
                (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);


        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            NotificationChannel channel = new NotificationChannel("notify_001",
                    "Channel human readable title",
                    NotificationManager.IMPORTANCE_DEFAULT);
            mNotificationManager.createNotificationChannel(channel);
        }

        mNotificationManager.notify(0, mBuilder.build());
3
Md Imran Choudhury

Проверьте версию Android, соответственно установите значок для> 6.0 и для других. Для версии 6.0 нам нужен белый фоновый значок.

if(Android.os.Build.VERSION.SDK_INT >= Android.os.Build.VERSION_CODES.Lollipop) {
 icon = R.mipmap.your_logo_for_Lolipop;
}else{
 icon = R.drawable.your_logo_for_KitKat ;
}
0
kevin

Сервисы Google Play должны быть включены для получения push-уведомлений на устройстве Android. Если сервисы Google Play включены, а общие действия по устранению неполадок не помогли решить проблему, может потребоваться перезагрузить приложение. Чтобы сбросить приложение, перейдите в «Настройки» → «Приложения» → «PagerDuty» и нажмите «Очистить данные».

Для Android 6.0 и новее убедитесь, что приложение установлено как приоритетное в приоритетном режиме.

Для Android 6.0 и новее проверьте, не отключается ли приложение в режиме Doze.

0
Praveen Vishal