Как я могу переключить это программно? - PullRequest
0 голосов
/ 27 февраля 2019

enter image description here

Как программно переключать эти переключатели?Я пробовал различные вещи, такие как:

private void allowAlarms() {
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
assert notificationManager != null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
    notificationManager.setNotificationPolicy(
            new NotificationManager.Policy(NotificationManager.Policy.PRIORITY_CATEGORY_ALARMS,
                    NotificationManager.Policy.PRIORITY_SENDERS_ANY,
                    NotificationManager.Policy.PRIORITY_SENDERS_ANY));
}
notificationManager.setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_PRIORITY);

}

и даже просто отключение звука телефона:

    private void allowAlarms() {
    final AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
    assert am != null;
    am.adjustVolume(AudioManager.STREAM_ALARM, AudioManager.ADJUST_UNMUTE);
    System.out.println("Alarms ON");
}

Ничего не работает, это означает, что звук будильника не работаетне включается / включается.Спасибо за любую помощь!

Редактировать: просто чтобы подтвердить, что ACTION_NOTIFICATION_POLICY_ACCESS_GRANTED является истинным.

Еще один вопрос: если я заглянул в исходный код Google, чтобы определить, как они это делают, какие-либо идеи, где примерносмотреть?

1 Ответ

0 голосов
/ 27 февраля 2019

официальный и самый современный API для управления системой уведомлений Android поставляется с Android 8 (API-уровень 26)

Вы можете проверить следующую тему, которая обсуждает это подробно:

https://stackoverflow.com/a/50813781/1345973

Новый API-интерфейс дает лучший контроль над системой уведомлений и способами ее настройки на уровне приложения.

Официальный документ для Android: https://developer.android.com/training/notify-user/channels

Используя этот API, вы можете переопределить конфигурацию системы, чтобы не беспокоить внутри вашего приложения, но вы не можете изменить общие настройки, которые вы упоминаете.Может быть, это не может рассматриваться как решение того, что вы спрашиваете.

...