Есть ли способ включить все настройки уведомлений по умолчанию при установке моего приложения?
Пользователи получают уведомления, но звук по умолчанию отключен, и нам нужно вручную включить его на устройстве. Не все пользователи могут сделать это вручную. Было бы здорово узнать, есть ли способ проверить все эти вещи, когда наше приложение будет установлено, например, WhatsApp или Telegram (у них все проверено по умолчанию).
Android 8 или более поздней версии вам необходимо использовать канал уведомлений, чтобы включить звук, вибрацию, звук и т. д.
Uri notification_sound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel notificationChannel = new NotificationChannel(CHANNEL_ID, CHANNEL_NAME, NotificationManager.IMPORTANCE_HIGH);
AudioAttributes attributes = new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_NOTIFICATION)
.build();
notificationChannel.setSound(notification_sound, attributes);//for enable sound
notificationChannel.enableLights(true);
notificationManager.createNotificationChannel(notificationChannel);
}
но в Редми примечание 5 про (MIUI 10.2.1.0) звук уведомлений все равно отключен. Я думаю, что это ошибка в MIUI. Запустите этот же код в mi A1 (Android один мобильный), все в порядке. Оно работает.
обратитесь к этому ссылка на сайт, чтобы узнать больше о Канал уведомлений
@CaptainMAD Вы справились с этим в React Native?
Попробуйте использовать это разрешение ниже в файле AndroidManifest.
<uses-permission android:name = "android.permission.ACCESS_NOTIFICATION_POLICY"/>
и установите приоритет уведомлений для версий Oreo ниже и выше IMPORTANCE_HIGH для Oreo и выше и PRIORITY_HIGH or PRIORITY_MAX для версий ниже Oreo
Ссылка на приоритетную заметку
Приоритет версии ниже Oreo
mBuilder.setSmallIcon(R.drawable.app_logo)
.setAutoCancel(true)
.setContentIntent(resultPendingIntent)
.setContentTitle(title)
.setStyle(bigPictureStyle)
.setSound(soundUri)
.setPriority(NotificationCompat.PRIORITY_HIGH) // prirority here for version below Oreo
.setWhen(System.currentTimeMillis())
.setLargeIcon(BitmapFactory.decodeResource(mCtx.getResources(), R.drawable.app_logo))
.setContentText(message)
.build();
Приоритет для Oreo и выше
Мне нужно добавить в свой файл манифеста, после чего я получаю уведомление
WhatsApp, Телеграмма, Снапчат и так далее. Это все приложения из белого списка, что означает, что имена пакетов жестко закодированы на уровне ОС, чтобы разрешить некоторые разрешения, включенные по умолчанию. Наши приложения не такие. Следовательно, нам нужно, чтобы пользователь включил эти разрешения вручную.
Вы можете проверить это самостоятельно. Создайте новое приложение для Android, укажите имя пакета приложения Телеграмма (org.telegram.messenger) и просто запустите его. Не делайте никакого кода вообще, и не нужно открывать приложение. Просто перейдите к настройкам уведомлений только что созданного приложения, где вы найдете все разрешения, включенные по умолчанию.
Надеюсь, вы получили ответ.
Мы используем React Native... Я думаю, нам нужно найти код, отвечающий за обработку уведомлений, и добавить код, как вы предложили... Дам вам знать, если это сработает! Спасибо за ответ ! :)