Demo地址:http://download.csdn.net/detail/u011634756/5915513(免积分哦


利用java反射调用隐藏Api,这个东西一般不具备应用的广泛性,请慎用哦~

在我想来我们在Android上能用到就是在定制apk的时候厂商给出隐藏api,然后apk开发人员去调用。

demo比较简单就直接上重点源码了。


1.先说一下 给出方法名字和参数来调用方法

TelephonyManager mTelephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);// 首先获取一个Clas对象 对象获取方法有// 2中方法,比较建议第二种哦Class ownerClass = Class.forName("android.telephony.TelephonyManager");// Class ownerClass = mTelephonyManager.getClass();// 参数类型, 获取的方法说不定会有好多重载过的 可以通过参数来确认/** * 介个可以有好几个参数的形势 例如:Class[] argsClass = new Class[3]; argsClass[0] = * int.class; argsClass[1] = boolean.class; argsClass[0] = String.class; */Class[] argsClass = new Class[1];argsClass[0] = int.class;// 参数, 在方法运行的时候需要的参数/** * ====== 这个一定要 对应 要不然报错了 很难找 和argsClass 一一对应。 */Object[] params = new Object[1];params[0] = value;// 获取参数 getNetworkTypeName 是你要获取的方法的名称 argsClass 是你方法的参数类型Method method = ownerClass.getMethod("getNetworkTypeName", argsClass);// 使用 method.invoke 来调用方法 mTelephonyManager 调用方法的对象 ,params 则就是参数return method.invoke(mTelephonyManager, params);

2. 获取属性和new对象

Class ownerClass = Class.forName("android.telephony.TelephonyManager");TelephonyManager mTelephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);//实例化一个对象/***Object instance = ownerClass.newInstance();**/// 我不清楚有没有隐藏 我现在解随便来一个Field field = ownerClass.getField("NETWORK_TYPE_GPRS");// 介个参数是我理解为是实例的对象 int a =  (Integer) field.get(mTelephonyManager);// 下面是一个超级bug的东西// 怎么bug 呢 据说如果field是一个private我们是不可以调用的但是反射是可以的哦//由于是final类型的 我们先在这里注释掉哦/***field.set(mTelephonyManager, 2);**/


====================关注小鱼===================

新浪微博http://weibo.com/AwareMissing

腾讯微博http://t.qq.com/y_haiyang




更多相关文章

  1. 64位win7下Android SDK Manager闪退的解决方法
  2. 最新Android Studio更换应用图标方法
  3. 安卓(Android)系统的检测方法
  4. 【Android】私有目录获取方法
  5. Android上在两个Activity之间传递Bitmap对象
  6. [置顶] Android 调用js,传对象到js里面使用addJavascriptInterfac
  7. Android 调用js,传对象到js里面使用addJavascriptInterface错误总
  8. Android signed APK程序正式签名方法详解

随机推荐

  1. 安卓开发中调用WebService实例
  2. android 优秀源码
  3. Android几种常见的多渠道(批量)打包方式
  4. Android中的广播机制(一)----- 接收广播
  5. 高德地图Android错误码1008、32和7;错误提
  6. 最近对招聘Android开发人员的一些思考
  7. android 蓝牙BLE 开发
  8. 雕刻机蓝牙android上位机控制器设计
  9. android基础部分再学习--AIDL
  10. Android百度地图开发之开发第一个小应用,