反射获得getSystemService()的方法
2017-08-25 09:53
806 查看
最近做项目的时候,获取服务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(); } }
值得注意的是获取管理类那行不用反射。
相关文章推荐
- Android之getSystemService方法实现详解
- C# 反射通过GetCustomAttributes方法,获得自定义特性
- getSystemService方法的调用
- getSystemService方法的调用
- K:利用System.getProperties()方法获得的虚拟机进程的信息
- C# 反射通过GetCustomAttributes方法,获得自定义特性
- Android之getSystemService()方法
- getSystemService方法的调用
- java 反射通过get方法获得属性值
- How to get Android Phone ServiceState - APK应用如何获得Android Phone的ServiceState,两种方法
- java反射通过get方法获得属性值
- Android 关于getSystemService()方法的一些常用服务
- java 反射通过get方法获得属性值
- java 反射通过get方法获得属性值
- Android 关于getSystemService()方法的一些常用服务
- C# 反射通过GetCustomAttributes方法,获得自定义特性
- getSystemService获得系统服务列表
- 获得执行jar的运行路径-使用classloader的getResource方法
- 利用java类的反射机制,实现了 映射 获得post(get)的参数 的BaseServlet
- 无法读取配置节 system.serviceModel 因为它缺少节声明的解决方法