【问题标题】:My app uses the phone as a server, what should I do about doze mode?我的应用程序使用手机作为服务器,我应该如何处理打盹模式?
【发布时间】:2015-11-17 18:07:52
【问题描述】:

实际上我有两个应用程序受到影响。一个人将电话用作视频服务器。另一个允许用户下载大文件。我很确定这两个都会受到打盹模式的影响,因为这些操作可能需要几个小时。谷歌似乎正在删除要求列入白名单的应用程序。

那么我有什么选择呢?

【问题讨论】:

    标签: android android-6.0-marshmallow


    【解决方案1】:

    您可以选择显示一个对话框,引导用户完成禁用打盹模式的步骤。

    仅供参考:可以在设置菜单中简单地禁用打盹模式,对于特定的应用程序:

    转到手机设置。按电池。按选项菜单按钮(在右上角,然后按电池优化。按选择器,然后按所有应用程序。电池优化列表出现。之后,按您要关闭打盹模式的应用程序的名称,然后在出现的框中,按“不优化”。完成后,选择完成。

    编辑: 试试这个让用户进入手机的电池设置:

    Intent newIntent = new Intent(Intent.ACTION_POWER_USAGE_SUMMARY);        
    startActivity(newIntent);
    

    【讨论】:

    • 谢谢。有没有办法让他们直接或至少尽可能靠近那个屏幕?
    • 从电池优化中排除应用不会禁用打盹模式! developer.android.com/intl/ja/training/monitoring-device-state/… -> 支持其他用例:“被列入白名单的应用程序可以在打盹和应用程序待机期间使用网络并保持部分唤醒锁。但是,其他限制仍然适用于列入白名单的应用程序,就像它们对其他应用程序一样...”
    【解决方案2】:

    如果您的应用正在使用带有相关通知的前台服务,则它们不会受到打盹模式的影响。但请确保它们在与您的主要活动不同的进程中运行,因为目前似乎存在一个错误,同一进程中的前台服务将受到影响。见Wake lock disabled in foreground service with Doze mode - new battery optimizations in Android M

    【讨论】:

    • 我确实有前台服务和通知,我看到有人提到过这一点,但我在 Google 文档中没有看到。谢谢。
    • 是的,官方文档中没有关于打盹模式影响的许多细节的信息。但该行为已被 Android 开发人员公开确认,有关详细信息,请参阅我对这个问题的回答 stackoverflow.com/questions/33018306/… 我建议,您自己进行测试...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 2019-12-27
    • 2017-05-20
    • 2017-09-06
    相关资源
    最近更新 更多