以编程方式检查节电模式
我已经编写了一个应用程序(AutoWifiSwitch),如果启用了省电模式,我计划添加的其中一项function会自动禁用我的应用程序中的wifi扫描服务。
我知道Android L应该实现省电(以前HTC和三星会将这些function添加到软件中)。 据推测,现在这意味着Google将为其添加某种API。 理想情况下会添加一个新动作,所以我可以倾听。
我还想知道HTC / Samsung API是否可以实现上述function,如果是这样,我该如何使用它们。
我一直在寻找上述问题,但绝对没有运气,应用程序SecureSettings(Tasker的插件)能够挂钩到HTC / Samsung API无论如何都能实现节电,我不太清楚他们是怎么做的做到这一点。
编辑 :可以从Android L中的PowerManager获取省电值,但不确定是否有针对它的操作。
我最终想出了如何用HTC和三星设备做到这一点。 两者都将他们的电源管理器设置存储在Settings.System中。
HTC(Sense)使用密钥user_powersaver_enable
。 三星(Touchwiz)使用密钥psm_switch
。
两者都将布尔值存储为String,“0”为false,“1”为true。 然后,您可以使用ContentObserver监听更改(需要API级别16或更高级别):
getContentResolver().registerContentObserver(Settings.System.CONTENT_URI, true, new ContentObserver(){ @Override public void onChange(boolean selfChange, Uri uri){ super.onChange(selfChange, uri); String key = uri.getPath(); key = key.substring(key.lastIndexOf("/") + 1, key.length()); if (key.equals("user_powersaver_enable") || key.equals("psm_switch")){ boolean batterySaverEnabled = Settings.System.getString(getContentResolver(), key).equals("1"); // do something } } });
但是这只适用于Android L发布之前,当L发布时HTC和三星可能转移到AOSP电池保护程序,这意味着你将能够在L中使用新的电池保护程序api。
PowerManager powerManager =(PowerManager)getSystemService(Context.POWER_SERVICE); powerManager.isPowerSaveMode()
“省电模式”不是官方的AOSPfunction,也没有办法通过官方SDK检测它。 它是制造商特定的。 检查此链接
这个答案仅适用于三星节电模式,因为像往常一样,三星仍然选择使用标准API。
iKeirNez发布了一个很好的答案,证实了我的怀疑。 这仍然发生在您可以购买的具有5.1.1的低端设备上。 我有一个列表,我知道这些设备在省电模式下遭受相机崩溃,但我还没有检查所有可能与省电模式相关的键。
到目前为止我知道这些:
内容://设置/系统/ powersaving_switch
内容://设置/系统/ psm_switch
您可以注册ContentResolver并监听更改,也可以在必要时进行检查:
final String result = Settings.System.getString(getContentResolver(), "psm_switch"); Log.v("Debug", "Powersaving active: " + TextUtils.equals(result, "1"));
- 在Android中运行新线程和UI线程的方法是什么?
- 在手机上测试Admob时DEVICE_ID_EMULATOR和TEST_EMULATOR之间的区别
- LibGDX FreeType字体模糊
- 上传图像为base64格式和压缩图像,然后通过改造发送到服务器?
- 这个类文件的Jar会闪现到容器Android 2.0.1,它不允许修改
- Android mupdf java.lang.UnsatisfiedLinkError:dlopen失败:找不到符号“atof”
- 如何在Android eclipse中导入外部JAR文件
- Android:将服务传递给处理程序
- 要求Android程序连接到wifi打印机并物理打印内容