Nous utiliserons la dépendance du package Screen et l'ajouterons au fichier pubspec.yaml
screen: ^2.5.0
Ajoutez la permission wakelock dans le fichier AndroidManifest.xml
Maintenant, votre fichier main.dart ressemblera à ceci :
import 'package:flutter/material.dart';
import 'package:screen/screen.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget{
@override
Widget build(BuildContext context) {
return MaterialApp(
home: HomePage(),
);
}
}
class HomePage extends StatefulWidget{
@override
_HomePageState createState(){
return _HomePageState();
}
}
class _HomePageState extends State {
double screenbrightness = 0.5;
// la luminosité doit être une valeur double comprise entre 0.0 et 1.0
// Obtenez la luminosité actuelle :
double luminosité = await Screen.brightness;
// Définir la luminosité :
Screen.setBrightness(0.5);
// Vérifier si l'écran est maintenu allumé :
bool estMaintenuAllumé = await Screen.isKeptOn;
// Empêcher l'écran de passer en mode veille :
Screen.keepOn(true);
@override
void initState() {
Future.delayed(Duration.zero,() async { // il y a une fonction d'attente, donc nous utilisons Future.delayed
double luminosité = await Screen.brightness; // obtenir la luminosité actuelle de l'écran
if(luminosité > 1){
luminosité = luminosité / 10;
// parfois cela donne une valeur allant de 0.0 à 10.0, donc convertissez-la en plage de 0.0 à 1.0
}
print(luminosité);
setState(() {
screenbrightness = luminosité;
// changer la valeur de la variable et mettre à jour l'interface de l'écran
});
});
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.blue[100], // couleur de fond du scaffold
appBar: AppBar(
title:Text("Changer la luminosité de l'écran"), // titre de l'application
backgroundColor: Colors.redAccent, // couleur de fond de la barre d'application
),
body: Container(
child:Column(children: [
Container(
margin: EdgeInsets.only(top:60),
child: Text("Changer la luminosité de l'écran")
),
Container(
child: Text("Valeur de luminosité : $screenbrightness")
),
Container(
child: Slider( // ajouter le curseur pour configurer la luminosité
min: 0.0,
max: 1.0,
onChanged: (value){ // cette fonction sera exécutée lorsque la valeur du curseur est modifiée
Screen.setBrightness(value); // définir la luminosité de l'écran avec la valeur du curseur
setState(() {
screenbrightness = value; // mettre à jour l'interface utilisateur
});
},
value: screenbrightness, // définir la valeur par défaut du curseur
)
)
],)
)
);
}
}