studio - não perturbe android



Android como ativar não perturbe(dnd) programaticamente (2)

Como ativar / desativar 'não perturbe' (dnd) programaticamente no Android? Is estava esperando que isso me desse algo, mas não:

Settings.System.putInt(getContentResolver(), Settings.System.DO_NOT_DISTURB, 1);

Answer #1

Apenas melhorando a resposta de Jordan Parsons. Para definir a prioridade, você precisa de uma permissão que só pode ser obtida solicitando ao usuário que abra uma Atividade. Será solicitada uma atividade perguntando se você deseja ativar a permissão Não perturbe para seu aplicativo.

Esta atividade pode ser aberta desta maneira:

 NotificationManager mNotificationManager = (NotificationManager) getActivity().getSystemService(Context.NOTIFICATION_SERVICE);

 // Check if the notification policy access has been granted for the app.
 if (!mNotificationManager.isNotificationPolicyAccessGranted()) {
     Intent intent = new Intent(android.provider.Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
     startActivity(intent);
 }

Após conceder essa permissão, essa configuração pode ser alterada.


Answer #2

Encontrei esta solução:

NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        mNotificationManager.setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_NONE);

Isso requer:

<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />

Que, até onde eu sei, não abre uma caixa de diálogo de solicitação ao executar requestPermissions (). Ele deve ser concedido através do menu de configurações Configurações -> Som e notificação -> Não perturbe o acesso.

Isso está no SDK 23 Marshmallow.





android