🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Ramazan HABER / FLUTTER / REQUEST_IGNORE_BATTERY_OPTIMIZATIONS pil otimize etme izni almak

1-) FLUTTER - REQUEST_IGNORE_BATTERY_OPTIMIZATIONS pil otimize etme izni almak

 

flutter pub add optimize_battery

flutter pub add shared_preferences

 

manifeste izin ekle <uses-permission  android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>

 

1-kullanımı

@override

void initState() {

  super.initState();

  pilIzni();

}

 

2- kodlar

Future<bool> isAlertDialogShownPil() async {

    SharedPreferences prefs = await SharedPreferences.getInstance();

    return prefs.getBool('isBattery') ?? false;

  }

 

  // Bu metot, AlertDialog'ı gösterdikten sonra local veritabanına kaydeder.

  Future<void> markAlertDialogAsShownPil() async {

    SharedPreferences prefs = await SharedPreferences.getInstance();

    await prefs.setBool('isBattery', true);

  }

 

  Future<void> showAlertDialogPil() async {

    await showDialog(

      context: context,

      builder: (BuildContext context) {

        return AlertDialog(

          title: Text('Ana Ekrana Widget Koyabilirsiniz.'),

          content: Text(

              'Uygulama iconuna basık tutarak widget koyun.\nÇalışması için pil kısıtlama yok izni verin!'

                  '\nAçılan ekrandan tüm uygulamalardan banka döviz kurları pro yu bulup pil izni kısıtlama yok izni(optimize etme) verin....'),

          actions: <Widget>[

            TextButton(

              child: Text('Tamamdır'),

              onPressed: () async {

                await markAlertDialogAsShownPil();

                Navigator.of(context).pop();

              },

            ),

          ],

        );

      },

    );

  }

 

  Future<void> pilIzni() async {

    if(Platform.isAndroid){

      bool alertDialogShown = await isAlertDialogShownPil();

      if (!alertDialogShown) { // AlertDialog daha önce gösterilmediyse, göster ve ardından kaydet.

        await showAlertDialogPil();

        OptimizeBattery.isIgnoringBatteryOptimizations().then((onValue) {

          if (onValue) {

          } else {

            OptimizeBattery.openBatteryOptimizationSettings();

          }

        });

 

      } else {  // AlertDialog daha önce gösterildiyse başka bir şey yapabilirsiniz.

        print('AlertDialog zaten gösterildi.');

      }

    }

  }

 

 2024 Mart 07 Perşembe
 271