我有一台带有Android 5.0的华为P8用于测试应用程序.该应用程序需要在后台运行,因为它跟踪BLE区域.
我发现华为内置了一个名为Protected Apps的"功能",可以通过手机设置(电池管理器>受保护的应用程序)进行访问.这允许选定的应用程序在屏幕关闭后继续运行.
对华为来说很明智,但不幸的是,对于我来说,它看起来像是选择加入,即默认情况下应用程序已经关闭,你必须手动将它们放入.这不是一个showstopper,因为我可以在常见问题解答或打印中建议用户关于修复的文档,但我最近安装了Tinder(用于研究目的!),并注意到它被自动放入受保护的列表中.
有谁知道我的应用程序如何做到这一点?它是清单中的设置吗?这是华为为Tinder启用的东西,因为它是一个受欢迎的应用程序?
美好的一天,情况:
我正在开发用作运动追踪器/导航应用程序的Android应用程序 - 因此它需要永久连接到GPS以及永久唤醒设备.每秒录制一次.
目前的解决方案工作多年是因为wakelocks保持设备清醒.
Android 6.0+中的打盹模式使情况复杂化,但并非如此.
在华为设备上可能是不同类型的优化.
这是日志的一部分:
10-10 10:33:18.462 1014-384 D/PFW.HwPFWAppWakeLockPolicy: getUidWakeLock uid: 10097 wakelock >= 10 mins
10-10 10:33:18.543 1014-384 D/PFW.HwPFWAppWakeLockPolicy: force stop abnormal wakelock app uid: 10097
10-10 10:33:18.558 1014-384 I/ActivityManager: Force stopping menion.android.locus appid=10097 user=0: from pid 1014
大约经过 30多分钟,系统简单地决定应用程序使用太多wakelocks并完全终止它与所有服务,历史,简单kill.
有这种行为和任何建议的任何经验,如何这个简单的任务(屏幕关闭时永久记录GPS位置)更好?
正如我在开始时所写的,除了新华为之外的所有其他设备,这样的系统可以正常工作多年.
编辑:注意一个用户的评论(删除?),华为电池管理器中的"白名单"应用程序(标记为"受保护的应用程序")对此问题没有影响.