Kei*_*yer 8 java api sdk android
我已经编写了一个应用程序(AutoWifiSwitch),如果启用了省电模式,我计划添加的其中一项功能会自动禁用我的应用程序中的wifi扫描服务.
我知道Android L应该实现省电(之前HTC和三星会将这些功能添加到软件中).据推测,现在这意味着Google将为其添加某种API.理想情况下会添加一个新动作,所以我可以倾听.
我还想知道HTC/Samsung API是否可以实现上述功能,如果可以,我该如何使用它们.
我一直在寻找上述问题,但绝对没有运气,应用程序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
}
}
});
Run Code Online (Sandbox Code Playgroud)
然而,这只适用于Android L发布之前,当L发布时HTC和三星可能转移到AOSP电池保护程序,这意味着您将能够在L中使用新的电池保护程序api.
PowerManager powerManager = (PowerManager)getSystemService(Context.POWER_SERVICE);
boolean powerSaveMode = powerManager.isPowerSaveMode();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6771 次 |
最近记录: |