如何以编程方式确定 Android 应用程序是否在 Samsung Galaxy 上进入睡眠状态?
How to programmatically determine if an Android app is put to sleep on Samsung Galaxy?
三星 Galaxy 具有让应用程序进入休眠状态的功能 - 据我所知,这与应用程序的电池优化不同。
我需要以编程方式检查应用程序是否配置为休眠,以便我可以适当地警告用户这一点以及后台任务将无法运行的事实。
我知道 PowerManager.isIgnoringBatteryOptimizations()
但是这似乎与是否让应用程序进入睡眠状态无关。
三星睡眠功能的特点是 'differs' 来自 'background optimizations'。他们的功能旨在在 3 天后冻结应用程序(就像设置中的冻结一样),但根据用户偏好,它可以延长到 7 天。目前,没有已知的方法以编程方式检查应用程序是否已进入睡眠状态。
你可以做的是通知用户这件事并要求 'whitelist' 应用程序从即将休眠。
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
}
Code source
此代码将尝试打开 BatteryManager,用户可以从那里 select 选项来防止应用休眠。
相关问题如下:
How do I check that my app enters optimizations Samsung devices?
Samsung “App optimization” feature kills background applications after 3 days
This blog should help you in figuring out the ways to inform the user about the issue
三星 Galaxy 具有让应用程序进入休眠状态的功能 - 据我所知,这与应用程序的电池优化不同。
我需要以编程方式检查应用程序是否配置为休眠,以便我可以适当地警告用户这一点以及后台任务将无法运行的事实。
我知道 PowerManager.isIgnoringBatteryOptimizations()
但是这似乎与是否让应用程序进入睡眠状态无关。
三星睡眠功能的特点是 'differs' 来自 'background optimizations'。他们的功能旨在在 3 天后冻结应用程序(就像设置中的冻结一样),但根据用户偏好,它可以延长到 7 天。目前,没有已知的方法以编程方式检查应用程序是否已进入睡眠状态。
你可以做的是通知用户这件事并要求 'whitelist' 应用程序从即将休眠。
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
}
Code source
此代码将尝试打开 BatteryManager,用户可以从那里 select 选项来防止应用休眠。
相关问题如下:
How do I check that my app enters optimizations Samsung devices?
Samsung “App optimization” feature kills background applications after 3 days
This blog should help you in figuring out the ways to inform the user about the issue