在开发中发现,随着android版本的升级,有些class被隐藏掉了。很是苦恼。网上有人提出的方法是将代码放到源码的环境中去编译,这个对我来说有些难搞。首先,没有源码的环境;其次,咋个编译,对我这小白级别的人来说,有难度。在强大的互联网帮助下,找到了一个方法。就是利用Java中的反射机制。
关于什么是反射机制,偶目前为止,也是一知半解,感兴趣的tx自己去学习吧。我就不耽误大家了。
我就来说说,我遇到的问题:
在模拟按键处理时用到了:
IBinder wmbinder = ServiceManager.getService( "window" );
final IWindowManager wm = IWindowManager.Stub.asInterface( wmbinder );
需要引入的类是:
import android.os.ServiceManager;
import android.view.IWindowManager;
很不幸,这两个class在1.6版本后就被隐藏掉了。
花费一天时间,终于找到了解决方法。
方法如下:
1. 首先查找源码,找到了IWindowManager.aidl文件,将源码按照相同的路径在自己的工程中创建;创建好后,发现会提示另外一些需要添加的文件,继续添加,直到没有错误提示。(PS:当然,在过程中,有些地方我认为自己的工程中不会用到,所以擅自屏蔽掉了部分功能,目前还没有发现有什么问题。另附源码地址:
http://www.google.com/codesearch#ukcgseahr9A/trunk/lib/bin_1_5/android/view/WindowManager.aidl&type=cs)
2. 添加代码替换原来的实现方法
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
}
分享到:
相关推荐
android开发中WebView的使用 WebView是个好东西,作用相当于一个迷你的浏览器,采用Webkit内核,因此完美支持html,javascript,css等。有时候,我们完全可以把UI甚至数据处理都交给WebView,配合PHP等服务端程序,...
Android开发中常用的工具类:获取UniqueId、全屏、隐藏任务栏等。
中文 | English ...在Android 5.0及以上使用以下命令显示和隐藏(不需要root,但是需要系统权限): adb shell pm hide adb shell pm unhide 区别: hide命令相当于uninstall -k卸载应用但是保留数据 实际上,h
最新android4.2 sdk jar包,包含android最新版本的所有隐藏类。 在引入时可添加包,或直接替换开发包中的android.jar
android安卓app开发之 隐藏app的图标.zip控制图标显示和隐藏
Android开发-FragmentTransaction-Fragment增加隐藏显示-完整Demo-AndroidStuidio http://blog.csdn.net/iwanghang
的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 • 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • ...
1.非常简单的一个类,用于在android开发中拖动View(可以是imageView或者viewGroup) 2.有两种构造方法,可以只监听一个图片,然后移动此图片。也可以将监听和移动的view分开。 3.里面的注释,若乱码,可能是编码...
第2章Android开发环境搭建 2.1JDK安装与配置 2.2安装Android Studio 2.3安装Android SDK 2.4创建Android模拟器 本章总结 本章练习题 第3章第一个Android应用程序 3.1使用Android Studio工具创建项目
主要介绍了Android 开发之Dialog中隐藏键盘的正确使用方法的相关资料,主要说明Dialog 隐藏键盘的注意事项,需要的朋友可以参考下
利用java的反射原理来调用 Android隐藏api 应用开发必备哦 详细描述: http://blog.csdn.net/y_haiyang/article/details/9924925 ====================关注小鱼=================== 新浪微博:...
将android内部类打包,对底层开发很有帮助
Xamarin开发Android不显示标题栏,隐藏title。代码由vs2017开发,下载就能使用
问题描述:一张图片,在需要显示的时候显示,否则处于隐藏状态。图片隐藏时不占用任何的布局控件;图片显示时,图片一下的所有布局依次向下移动。
NULL 博文链接:https://bgj.iteye.com/blog/2233718
Android开发强制键盘弹出/隐藏,在点某条评论时,强制弹出键盘,关闭该页面是强制隐藏键盘
的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 • 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • ...
这是一个Android包含了所有隐藏API的jar包
Android应用源码开发Demo,主要用于毕业设计学习。