Как предпринять действия на основе обнаружения заблокированного или выключенного экрана в приложении flutter

#flutter #background-process #flashlight #off-screen

#flutter #фоновый процесс #фонарик #вне экрана

Вопрос:

Используя пакет flutter из pub.dev с именем «torch_compat 1.0.2» для включения / выключения фонарика в приложении Android, как отключить фонарик (вызвать TorchCompat.turnOff ()) при обнаружении заблокированного или выключенного состояния экрана.

Текущий код:

 import 'package:flutter/material.dart';
import 'package:torch_compat/torch_compat.dart';

class FlashlightOnOffButton extends StatefulWidget {
  @override
  _FlashlightOnOffButtonState createState() => _FlashlightOnOffButtonState();
}

class _FlashlightOnOffButtonState extends State<FlashlightOnOffButton> {
  bool isFlashlightOn = false;
  @override
  Widget build(BuildContext context) {
    final data = MediaQuery.of(context);
    var isPortrait = MediaQuery.of(context).orientation;
    return Container(
      child: FlatButton(
        onPressed: () {
          isFlashlightOn ? TorchCompat.turnOff() : TorchCompat.turnOn();
          setState(() {
            isFlashlightOn = !isFlashlightOn;
          });
        },
        child: Icon(
          Icons.lightbulb,
          color: isFlashlightOn ? Colors.deepOrangeAccent : Colors.white10,
        ),
      ),
    );
  }
} 

Ответ №1:

Возможно, вы ищете этот пакет package2

Более подробная информация о жизненном цикле приложения flutter может помочь вам в достижении желаемых результатов.

Комментарии:

1. Как отслеживать активность пользователя в приложении, я имел в виду, что пользователь нажимает / переходит в приложение (на всем экране)? Я хочу глобальное решение, а не путем реализации GestureDetection на каждом экране. Есть идеи по этому поводу?