Android 5.1设置为优先级模式

时间:2015-09-11 20:41:36

标签: android audio silent android-5.1.1-lollipop

我正在尝试将运行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)并没有做任何事情:如果我在...中,它会让我退出振动模式。

1 个答案:

答案 0 :(得分: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);

    }