2 votes

Comment pouvons-nous régler la luminosité du périphérique en utilisant Flutter ?

En utilisant la luminosité de l'écran ou le package d'écran, je suis capable de changer la luminosité de l'écran du téléphone portable mais la luminosité modifiée n'est pas reflétée dans le curseur de luminosité du dispositif et le mobile s'ajuste à la luminosité du dispositif après avoir quitté l'application.

Existe-t-il un moyen d'écrire la luminosité du téléphone portable en utilisant flutter ?

0voto

Nisha Jain Points 216

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
                 )
               )
          ],)
        )
     );
  }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X