最近做项目的时候,获取服务STATUS_BAR_SERVICE的管理类时,setSystemControlCenterEnable(Boolean b)这个方法在studio报红,无法使用,因此想到利用反射获取
StatusBarManager mStatusBarManager = (StatusBarManager) getSystemService(Context.STATUS_BAR_SERVICE);
mStatusBarManager.setSystemControlCenterEnable(!enable);
反射后的代码如下,具体反射内容就不再叙述了,直接上代码
protected void changeNavigation(boolean flag) {
try {
StatusBarManager mStatusBarManager = (StatusBarManager) getSystemService(Context.STATUS_BAR_SERVICE);
final Method setSystemControlCenterEnable =Class.forName("android.app.StatusBarManager").getMethod("setSystemControlCenterEnable",new Class[]{boolean.class});
setSystemControlCenterEnable.invoke(mStatusBarManager,new Object[]{new Boolean(flag)});
}catch (Exception e){
e.printStackTrace();
}
}
值得注意的是获取管理类那行不用反射。