Android 5.1 установлен в приоритетном режиме

В настоящее время я пытаюсь установить телефон под управлением Android 5.1 в режим приоритета.

Я попытался установить его в беззвучный режим в AudioManager, но это не дает никакого эффекта, а также устанавливает его на ноль.

Однако установка его в режим вибрации работает ...

//Neither this
AudioManager am = (AudioManager) getBaseContext().getSystemService(AUDIO_SERVICE);
am.setRingerMode(AudioManager.RINGER_MODE_SILENT); 

//nor this works
AudioManager am = (AudioManager) getBaseContext().getSystemService(AUDIO_SERVICE);
am.setRingerMode(0); 

Другого решения пока не нашел.

Также я не могу использовать какие-либо корневые функции.

РЕДАКТИРОВАТЬ: только что узнал, что установка его на 0 (или RINGER_MODE_SILENT) ничего не делает: он выводит меня из режима вибрации, если я нахожусь в...


person ravenbay    schedule 11.09.2015    source источник


Ответы (1)


Только что узнал, что я могу добиться этого через службу NotificationListener. (И что на мой вопрос уже есть ответ где-то еще...)

    //In the Service I use this to enable and disable silent mode(or priority...)
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        boolean start = intent.getBooleanExtra("start", false);
        if(start)
        {
            Log.d("TAG","START");

            //Check if at least Lollipop, otherwise use old method
            if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
                requestInterruptionFilter(INTERRUPTION_FILTER_NONE);
            else{
                AudioManager am = (AudioManager) getBaseContext().getSystemService(AUDIO_SERVICE);
                am.setRingerMode(AudioManager.RINGER_MODE_SILENT);
            }
        }
        else
        {
            Log.d("TAG","STOP");
            if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
                requestInterruptionFilter(INTERRUPTION_FILTER_ALL);
            else{
                AudioManager am = (AudioManager) getBaseContext().getSystemService(AUDIO_SERVICE);
                am.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
            }
        }
        return super.onStartCommand(intent, flags, startId);

    }
person ravenbay    schedule 12.09.2015
comment
Да, stackoverflow.com/questions/30153984/ - person headuck; 12.10.2015