在模拟按键处理时用到了:

java代码:
IBinder wmbinder = ServiceManager.getService( "window" );
final IWindowManager wm = IWindowManager.Stub.asInterface( wmbinder );


  需要引入的类是:

java代码:
import android.os.ServiceManager;
import android.view.IWindowManager;


方法如下:  1. 首先查找源码,找到了IWindowManager.aidl文件,将源码按照相同的路径在自己的工程中创建;
2. 添加代码替换原来的实现方法

java代码:
try{
Object object = new Object();
Method getService = Class.forName("android.os.ServiceManager").getMethod("getService", String.class);
Object obj = getService.invoke(object, new Object[]{new String("window")});
//System.out.println(obj.toString());
windowMger = IWindowManager.Stub.asInterface((IBinder)obj);
}catch(ClassNotFoundException ex){
//ignored
}catch(NoSuchMethodException ex){
//ignored
}catch(IllegalAccessException ex){
//ignored
}catch(InvocationTargetException ex){
//ignored
}


反射机制的应用1:

java代码:
import android.os.ServiceManager;
ITelephony.Stub.asInterface(ServiceManager.getService("phone")).answerRingingCall();


更多相关文章

  1. Android时间互换代码
  2. Android弹出异常dialog源码分析
  3. 利用productFlavors实现一套代码打包多版本
  4. Android UI滑动加载源码
  5. android sql 批量处理插入/修改/删除 操作通用代码
  6. Android功能代码
  7. android中如何通过jni调用c,c++代码
  8. Android中通过代码修改bitmap的宽高
  9. android判断设备是否有相机的实例代码

随机推荐

  1. Android(安卓)SD卡操作 (Environment 状态
  2. TensorFlow in Android
  3. android studio 官方用户指南翻译学习(四)
  4. Android字符串资源
  5. 【JAVA】生成一个32位的随机数。防止重复
  6. Android(安卓)防止Toast重复弹出相同的信
  7. Android之权限(permission)大全
  8. ionic上拉翻页及下拉刷新
  9. Windows10环境下Android(安卓)studio NDK
  10. Android之Fragments