如果想要实现类似iphone的悬浮框按钮,那就必须知道如何去模拟真实按键,然后才能将按键功能与悬浮框按钮联系起来,下面就详细说明一下具体的模拟实现:
实现方式有两种,一种是通过Command命令方式,另外一种是通过Instrumentation方式。
一 Command命令方式:
try{
String keyCommand = "input keyevent " + KeyEvent.KEYCODE_BACK;
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec(keyCommand);
} catch(IOException e){
}
二 Instrumentation方式:
private Instrumentation in =new Instrumentation();
new Thread(new Runnable() {
@Override
public void run() {
in.sendKeyDownUpSync(KeyEvent.KEYCODE_BACK);
}
}).start();
注意sendKeyDownUpSync方法必须放到非主线程去调用。
以上两种方法都有一个缺点,那就是home是无法模拟的,那至于home键我们需要如何做呢?首先需要分析home键的功能,短按home键是返回桌面,长按home键是拉起最近使用程序列表,知道这些就简单了,只需要在虚拟home键的地方实现上述两个功能就可以了,具体如下:
一 短按home:
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);
二 长按home:
IStatusBarService mStatusBarService;
final Object mServiceAquireLock = new Object();
IStatusBarService getStatusBarService() {
synchronized (mServiceAquireLock) {
if (mStatusBarService == null) {
mStatusBarService = IStatusBarService.Stub.asInterface(
ServiceManager.getService("statusbar"));
}
return mStatusBarService;
}
}
try {
IStatusBarService statusbar = getStatusBarService();
if (statusbar != null) {
statusbar.toggleRecentApps();
}
} catch (RemoteException e) {
mStatusBarService = null;
}
长按home键功能在android最新版本是在SystemUI中实现的,此法只针对新版,老版本的没有研究过
分享到:
相关推荐
Android 模拟按键,实现按键发送消息
Android代码模拟按键事件,demo中以按数字键1为例子,响应power按键事件,系统进待机。按数字键1可以替换成接收消息,广播,接口回调,等等
主要介绍了Android 跨进程模拟按键(KeyEvent )实例详解的相关资料,类似手机遥控器的需求就可以这么做,需要的朋友可以参考下
博文源码《Android基于Socket无线遥控(2)--无线控制篇》 http://blog.csdn.net/zzp16/article/details/7939852 为Android系统添加模拟按键对外接口
模拟android长按home键,弹出近期任务。对应的文章为:http://blog.csdn.net/yanbin1079415046/article/details/8026613
模拟键盘按键自动输入文字,焦点文字,模拟键盘输入
使用设备是一种模拟键盘输入的读卡器设备,该设备可以直接在Windows下使用,在安卓系统下由于输入法的干扰,大多数无法直接使用。本安卓项目用于拦截该设备扫描内容,可以读出原始字节并转义为卡号,提供更好的兼容...
实现自动后台测试模拟android 按键.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
Android 媒体键监听以及模拟媒体键盘的实现 ;
手机维护精灵是一款极具易用性和良好用户体验的Android设备远程维护软件;提供可视化的远程设备维护、FTP文件管理、程序和进程管理、用户信息备份等多项实用性功能,令用户足不出户即可享受专业级的维护体验。手机...
android模拟屏幕点击。利用无障碍服务,并申请悬浮窗口权限,全屏幕点击记录触摸控制点,并定时重新模拟点击.zip
在android 平台上,通过三种方式实现模拟按键控制的功能
基于UiAutomator框架,自动模拟用户手势操作,类似于触摸精灵,按键精灵的app。
那个android 下面,触摸屏按键模拟 ,截屏 , 抓取颜色 等功能 源代码 花费了一两天时间搞定, 基本功能从技术上实现, 界面和流程自己去完善吧
Android 模拟数字拨号界面及打电话监听功能,将创建一个数字按钮的ID数组,定义OnClickListener为View的内部接口,负责监听鼠标点击事件,为拨号按钮添加监听器,获取输入的电话号码,根据获取的电话号码创建Intent...
关于Android 单元测试的一个案例,按键点击事件测试
android系统模拟点击事件发送QQ消息.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
Android用adb模拟按键,操作手机
参考网上代码,自己写的一个模拟物理分页的DEMO,本人技术有限,未能做到很好的拓展和封装,仅供新手参考,下一步准备将封装好一个下拉刷新
主要给大家介绍了关于android命令行模拟输入事件,例如文字、按键、触摸等的相关资料,文中通过示例代码介绍的非常详细,对各位android开发者们具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧