博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
反射调用android系统级API函数
阅读量:5885 次
发布时间:2019-06-19

本文共 901 字,大约阅读时间需要 3 分钟。

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)和私有方法,从而越过系统的限制。

转载地址:http://tklix.baihongyu.com/

你可能感兴趣的文章
DotNet加密方式解析--散列加密
查看>>
OpenSSL使用2(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12概念说明)(转)
查看>>
win 下 apache 虚拟主机配置方式
查看>>
第十一篇:基于TCP的一对回射客户/服务器程序及其运行过程分析( 下 )
查看>>
【HDU1219】AC Me(水题)
查看>>
【前端】:HTML
查看>>
从JDBC程序看为什么需要Mybatis
查看>>
ZOJ 1403&&HDU 1015 Safecracker【暴力】
查看>>
Oracle树查询及相关函数
查看>>
更新软件
查看>>
Windows10锁屏壁纸提取
查看>>
SSM框架——使用MyBatis Generator自动创建代码
查看>>
Logstash之Logstash inputs(file和redis插件)、Logstash outputs(elasticsearch 和redis插件)和Filter plugins...
查看>>
利用struts2<s:token>标签防止用户重复提交
查看>>
局域网基本原理与广域网基本原理
查看>>
Python(七)之OS模块
查看>>
java数据库操作:JDBC的操作
查看>>
Codeforces Round #247 (Div. 2) D. Random Task
查看>>
解决Ubuntu下博通网卡驱动问题
查看>>
怎样给ExecutorService异步计算设置超时
查看>>