【发布时间】:2019-08-27 18:11:51
【问题描述】:
我开发了一个应用程序,该应用程序使用服务流式传输音乐(通过互联网连接),并在不让手机闲置的情况下提供流式传输内容。
当我每次尝试下面提到的案例时,我都在开发我的应用程序时,音乐再现良好。
用例:搜索歌曲、从结果中选择歌曲、播放歌曲、关闭屏幕 -> 从结果列表中自动播放下一首歌曲
我正在使用真实设备进行开发 - 华为 Mate 20 Lite - OS v8.01,因此在调试时必须使用 USB 电缆。 就像我说的那样,在连接到 USB 时遵循上面的用例,屏幕关闭时自动播放效果很好。不能正常工作的情况是未连接数据线(仅打开移动数据)。
我发现手机在连接到 USB 时可能会使设备保持唤醒状态,并且不会进入空闲模式,而在大约 5 分钟后未连接时,设备可能会关闭消耗能源的进程或关闭无法连接到移动数据,我不确定,我需要你们。
我还使用 HTC U Play - OS v6.0 测试了应用程序,并且在屏幕关闭且 10 分钟以上未触摸手机的情况下,流式传输流畅无中断。
我还尝试在 oncreate 中获取唤醒锁并且不释放它只是为了看看它是否有帮助,它没有。
pm = (PowerManager) getApplicationContext().getSystemService(Context.POWER_SERVICE); wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakeLock"); wl.acquire();
【问题讨论】:
-
你使用的是前台
Service吗? -
将
android:keepScreenOn="true"用于布局或视图。 -
从打盹模式中将您的应用列入白名单。 (实际上您需要请求您的用户执行此操作,但您可以启动意图)。这样您就不会受到电池优化的影响。
-
白名单就是答案
标签: android battery idle-timer screen-off mobile-data