Установить звук уведомления в качестве мелодии звонка по умолчанию - PullRequest
0 голосов
/ 26 мая 2018

Что я обнаружил, так это то, что если я установлю звук уведомления в качестве мелодии сигнала тревоги устройства по умолчанию, например:

val alarmTone = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM)
val builder = NotificationCompat.Builder(
        context,
        CHANNEL_ID
)
builder.setDefaults(Notification.DEFAULT_VIBRATE or Notification.DEFAULT_LIGHTS)
builder.priority = NotificationCompat.PRIORITY_DEFAULT
builder.setSound(alarmTone)

Это будет работать почти на всех старых версиях устройства, но как только я его протестируюAndroid 8.0 устройство, оно устанавливает звук в качестве звука уведомления по умолчанию.Как я могу получить сигнал тревоги по умолчанию для устройств 8.0?

1 Ответ

0 голосов
/ 26 мая 2018

После 8.0 Oreo Возможно, вы создали канал для звука уведомления о воспроизведении.

private static void initChannels(NotificationManager notificationManager) {
    if (Build.VERSION.SDK_INT < 26) {
        return;
    }

    NotificationChannel channel = new NotificationChannel("ID",
            "NAME",
            NotificationManager.IMPORTANCE_LOW);
    channel.setDescription("DESC");
    channel.enableVibration(false);
    AudioAttributes audioAttributes = new AudioAttributes.Builder()
            .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
            .setUsage(AudioAttributes.USAGE_NOTIFICATION_RINGTONE)
            .build();
    channel.setSound(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.notification), audioAttributes);

    notificationManager.createNotificationChannel(channel);
}

Убедитесь, что вы используете targetSdkVersion 26 или выше

...