android - 如何在三星 S20 FE 5G 上检测 Android 10 的电源模式
问题描述
我可以看到这款手机可以在设置->设备维护->电池->电源模式下手动选择“高性能”、“优化”、“中等省电”、“最大省电”。
但是,当我运行代码时:
PowerManager powerManager = (PowerManager)getSystemService(Context.POWER_SERVICE);
boolean powerSaveMode = powerManager.isPowerSaveMode();
if (powerSaveMode)
Toast.makeText(thisContext, "Power Saver Mode is on", Toast.LENGTH_SHORT).show();
else
Toast.makeText(thisContext, "Power Saver Mode is off", Toast.LENGTH_SHORT).show();
无论设置如何,它总是返回“省电模式关闭”。
这段代码在三星 S7(Android 8 api 25)上运行良好,所以我猜测“isPowerSaveMode()”不再是我应该用于 Q 的方法。
麻烦的是 - 我找不到任何文件告诉我现在使用什么。
当我尝试时:
final String result = android.provider.Settings.System.getString(getContentResolver(), "psm_switch");
Toast.makeText(thisContext, "psm_switch = " + result, Toast.LENGTH_SHORT).show();
它只返回“psm_switch = null”
非常感激地收到任何帮助。非常感谢托尼
感谢您的链接。我们有一个应用程序需要跟踪远程工作人员的生命迹象——它每 10 分钟记录一次 GPS 和加速度计。他们需要正确设置许多设置(如您提供给我们的链接),但经常出错。我正在尝试向应用程序添加一个状态屏幕,它将向他们回读所有可能导致他们的应用程序睡眠或无法收集/发送 gps 数据的设置。两个主要违规者是应用程序进行了功率优化,并且仅在应用程序正在使用时才授予位置权限。一般功率优化也是问题的候选者,我也试图报告这一点。但是,在 Android 10 下,似乎没有可检测的设置来指示是否有任何级别的省电 - 只有大约 10 个其他设置的集合。(如后台定位启用)
解决方案
推荐阅读
- nix - NixOS 服务 systemd 单元的 $PATH 不包含预期的依赖项
- javascript - 当我返回选项卡时,为什么 useQuery 使我的组件重新呈现?
- after-effects - 如何在 adobe 中循环修剪路径?
- php - Laravel Eloquent - 延迟加载因选择约束而失败
- android - 从 figma 为任何图标添加完整的活动阴影
- docker - Harbor:如何将图像直接加载到远程注册表?
- abap - 对 BAPI_GOODSMVT_CREATE 和滚动区域的序列化调用
- php - 如何“创建一个以根路径中的 $cfg['install_key'] 变量命名的文件;”
- pyspark - 使用 pyspark 执行存储在数据框中的 SQL
- lua - 如何从 LUA 表中选择多个随机元素?