首页 > 代码库 > 反射调用android系统级API函数
反射调用android系统级API函数
try { Class<?> mClass = Class.forName("com.android.server.wifi.WifiSettingsStore"); Constructor con=mClass.getDeclaredConstructor(Context.class); if(!con.isAccessible()){ con.setAccessible(true); } Object store = con.newInstance(this); Method[] methods = mClass.getDeclaredMethods(); Method method = null; for(Method m:methods){ if(m.getName().equalsIgnoreCase("getPersistedScanAlwaysAvailable")){ method = m; break; } } if(!method.isAccessible()){ method.setAccessible(true); } Object a = method.invoke(store); Log.e("a", a.toString()); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch(Exception e){ e.printStackTrace(); }
android系统级api中含有大量的类,当然这些底层类都会被public的api链接到,但有时候你可能须要突破系统的限制做一些事情,那这个时候反射就成了利器。
这里不会讲反射意义,给出上面的样例,主要是为了说明。在系统中,凡是存在的类,我们都能够拿到事实上例。
从而调用当中的私有属性(非final)和私有方法,从而越过系统的限制。
反射调用android系统级API函数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。