реагировать на родные push-уведомления не работает в Android 8.1 (уровень API 27) - PullRequest
0 голосов
/ 18 марта 2019

В своем собственном приложении реагировать я пытался обрабатывать уведомления по расписанию по расписанию, используя эту библиотеку реагировать-push-уведомления , это нормально работает на устройствах, которые работают под Android API до 25, поэтому проблема возникает в Android-версия Oreo, я перепробовал множество решений, таких как использование каналов и добавление уведомления на этот канал, но безрезультатно, помогите, пожалуйста !!!

Моя реагирующая нативная версия :

  • Reaction-native-cli: 2.0.1
  • Реактор: 0,58,5

От андроида Проект:

    buildToolsVersion = "28.0.2"
    minSdkVersion = 16
    compileSdkVersion = 28
    targetSdkVersion = 27
    supportLibVersion = "28.0.0"

Ответы [ 2 ]

2 голосов
/ 18 марта 2019

Я сам решил эту проблему, потратив несколько дней на поиски решения !!

Перейдите к файлу в проекте Android для реагировать-родной-push-уведомлений библиотеки и внесите некоторые изменения здесь

С по линии 572 , К строке

заменить эти строки на:

NotificationChannel mChannel = manager.getNotificationChannel(NOTIFICATION_CHANNEL_ID);
if (mChannel == null) {
mChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "Channel name", NotificationManager.IMPORTANCE_MAX);
mChannel.enableVibration(true);
mChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});
manager.createNotificationChannel(mChannel);
}
0 голосов
/ 29 мая 2019

реагирует, что собственное push-уведомление не работает в> = o из-за оптимизации батареи ...

Добавление канала в MAinActivity.java

public void onResume() {
        super.onResume();
        NotificationManager nMgr = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            int importance = NotificationManager.IMPORTANCE_HIGH;

            NotificationChannel notificationChannel = new NotificationChannel("channelID", "channelName", importance);
            notificationChannel.enableLights(true);
            notificationChannel.setLightColor(Color.RED);
            notificationChannel.enableVibration(true);
            notificationChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});
            nMgr.createNotificationChannel(notificationChannel);
        }

        nMgr.cancelAll();
    }
...