4

三星 Galaxy 具有让应用程序进入睡眠状态的功能——据我了解,这与应用程序的电池优化不同。

我需要以编程方式检查应用程序是否配置为睡眠,以便我可以正确警告用户这一点以及后台任务无法运行的事实。

我知道PowerManager.isIgnoringBatteryOptimizations()这似乎与是否让应用程序进入睡眠状态无关。

4

1 回答 1

3

三星睡眠功能的特点是它与“背景优化”“不同”。他们的功能旨在在 3 天后冻结应用程序(就像在设置中冻结一样),但根据用户偏好,它可以延长到 7 天。目前,没有已知的方法可以以编程方式检查应用程序是否已进入睡眠状态。

您可以做的是通知用户这一点,并要求将应用程序从即将进入睡眠状态“列入白名单”。

Intent intent = new Intent();
intent.setComponent(new ComponentName("com.samsung.android.sm", "com.samsung.android.sm.ui.battery.BatteryActivity"));

try {
   getActivity().startActivity(intent);
} catch (ActivityNotFoundException exception) {
     //Manager not installed
}

代码源

此代码将尝试打开 BatteryManager,用户可以从那里选择选项以防止应用程序休眠。

以下是相关问题:

如何检查我的应用程序是否进入优化三星设备?

三星“应用程序优化”功能在 3 天后杀死后台应用程序

该博客应该可以帮助您找出将问题告知用户的方法

于 2019-07-29T12:35:49.587 回答