Пакет Flutter wakelock не позволяет приложению переходить в спящий режим

#ios #flutter #dart #wakelock

#iOS #flutter #dart #wakelock

Вопрос:

Я создаю приложение с последней версией Flutter. Я тестировал на реальном устройстве iOS, и всякий раз, когда я нахожусь в приложении, мое физическое устройство не переходит в спящий режим из-за бездействия. У меня есть настройки на физическом устройстве, переведенные в спящий режим в течение 30 секунд. Я пытался использовать этот пакет из pub.dev (https://pub.dev/packages/wakelock ), но мое приложение все равно остается включенным, несмотря ни на что. Код относительно прост, например:

 await Wakelock.disable();
print(await Wakelock.enabled);
// returns false (device should allow sleep mode)
 

Я бы подумал, что мне даже не нужен пакет и что значение по умолчанию позволит устройству перейти в спящий режим. Кто-нибудь сталкивался с этим и исправил?

Ответ №1:

Я являюсь автором пакета wakelock.

Поскольку такого рода проблемы обычно должны быть проблемой GitHub, а не вопросом StackOverflow, я напишу ответ на это вместо короткого комментария 🙂


Должно ли устройство нормально переходить в спящий режим?

Да, так и должно быть. И обычно он переходит в спящий режим.

Здесь я вижу два варианта:

  • либо у вас что-то неправильно настроено на вашем устройстве, либо запущена какая-то другая служба.
  • вы звоните Wakelock.enable в какой-то момент после того, как отключили его, что приводит к тому, что ваше устройство не переходит в спящий режим.

Как решить эту проблему

Я не могу точно сказать вам, что происходит, потому что этого не должно быть в вашем описании.

Что вы можете сделать, так это следующее: протестируйте приложение, которое вообще не используется wakelock , и посмотрите, переходит ли оно в спящий режим. Если да, то затем вы можете попытаться увидеть, куда вы вызываете Wakelock.enable , и отладить это, чтобы убедиться, что оно вообще не вызывается.


После этого, если у вас есть дополнительная информация, пожалуйста, откройте выпуск на GitHub. Пожалуйста, убедитесь, что вы можете перевести свое устройство в спящий режим, если перед этим было открыто другое приложение.