xingda920813 / HelloDaemon

Android 服务保活/常驻 (Android service daemon using JobScheduler)
MIT License
2.31k stars 443 forks source link

Doze模式的检测,为什么跳过了安卓M #23

Closed HarborZeng closed 7 years ago

HarborZeng commented 7 years ago

是手误M敲成了N吗?

另外,我看摩拜单车在MIUI上的表现,直接转跳到了摩拜单车的神隐模式界面,而不是所有应用的神隐模式界面。在网上也找了资料,也看了MIUI设置的Manifest ,实在没找到,您可以找找看吗?这个作用还是挺大的。

还有,我希望whiteListMatters能有个返回值,表示遍历那些机型有没有匹配的。

谢谢

HarborZeng commented 7 years ago

com.miui.powerkeeper/.ui.HiddenAppsConfigActivity

嗯 我刚刚找到这个了,您要不考虑改一下

xingda920813 commented 7 years ago
  1. 6.0 的 Doze 进入条件很苛刻, 需要设备完全静止几个小时才能进入, 所以就不做适配了, 还能减少一个弹框;
  2. 我不知道往 HiddenAppsConfigActivity 的 Intent 传的 Extra 是什么. 这里肯定要传一个 Extra, 说明是哪个 App. 我试了 Key 是 "packageName" 和 "pkgName" 都不行;
  3. 1.1.2 加了返回值是 List[IntentWrapper] 类型的, 表示弹过框的 IntentWrapper, 有没有匹配的可以用 !list.isEmpty() 来判断.
HarborZeng commented 7 years ago

public void openGodMode(View v){ Intent intent = new Intent(); intent.setComponent(new ComponentName("com.miui.powerkeeper", "com.miui.powerkeeper.ui.HiddenAppsConfigActivity")); intent.putExtra("package_name", "test.cn.tellyouwhat.androidtest"); intent.putExtra("package_label", "AndroidTest"); startActivity(intent); }

HarborZeng commented 7 years ago

@xingda920813 您好,我试了很多,最后反编译了MIUI的PowerKeeper,找到了两个可以的家伙“package_name”和“package_label”,分别是指包名和app的名字,希望对你有帮助。

xingda920813 commented 7 years ago

非常感谢. 已修改在 1.1.3 并测试通过.

HarborZeng commented 7 years ago

很高兴能和您一起提升这个库的质量,您这个库写的是真的很棒。解决了我的大问题。