2017-08-15 1 views
0

J'ai un service qui détecte certains événements du système, comme certaines heures de la journée. Je voudrais que mon service (lorsque les critères sont remplis) diminue l'écran de l'utilisateur. Jusqu'ici, en regardant par Internet et StackOverflow, j'ai trouvé beaucoup de solutions basées sur "getWindow()", ce qui signifie que mon application doit avoir une activité de premier plan pour y parvenir.Android - écran de gradation du service

Si j'ai juste un service qui devrait mettre une luminosité d'écran à l'échelle du système, par exemple, 30%, que faut-il faire? Je ne pense pas que ce soit très similaire à changer la luminosité "localement" (juste pour ma propre application).

Mon idée était d'obtenir une « fenêtre » de l'application de premier plan en cours, mais je ne suis pas très sûr si cela est encore possible: \

Quelqu'un peut-il me donner quelques indices ou de l'aide s'il vous plaît, toutes mes recherches terminées par " vous devez appeler "getWindow()" de votre propre application "?

+0

luminosité de l'écran peut être contrôlé Dans l'ensemble [via 'SCREEN_BRIGHTNESS'] (https://developer.android .com/reference/android/provider/Settings.System.html # SCREEN_BRIGHTNESS). Si c'est le cas, vous pouvez en principe le changer si vous possédez l'autorisation 'WRITE_SYSTEM_SETTINGS'. Cependant, ce n'est pas une permission facile à obtenir, et vous serez en train de remplacer les contrôles de luminosité habituels de l'utilisateur. – CommonsWare

Répondre

1

je crois qu'il est

System.putInt(contentResolver, System.SCREEN_BRIGHTNESS, brightness) 

Mais vous devez également les autorisations Pre api 23

android.permission.WRITE_SETTINGS 
+0

En fait, cela fonctionne à partir du service que je peux appeler "getContentResolver()"! Merci! – guest86