`
zhy20045923
  • 浏览: 156945 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android模拟按键

阅读更多
如果想要实现类似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中实现的,此法只针对新版,老版本的没有研究过
0
1
分享到:
评论

相关推荐

    android模拟按键发送消息

    "Android模拟按键"这个主题就是关于如何在代码层面模拟用户按下特定的按键,从而执行相应的功能,比如本例中的“发送消息”。下面我们将深入探讨这个话题。 首先,Android系统提供了几个关键API来支持模拟按键事件...

    Android代码模拟按键事件

    在Android开发中,有时我们需要在程序中模拟按键事件,例如在自动化测试、游戏控制或特殊功能实现时。本文将深入探讨如何在Android代码中模拟按键事件,以按数字键1为例,并扩展到如何响应电源键事件使系统进入待机...

    Android 跨进程模拟按键(KeyEvent )实例详解

    在Android开发中,有时我们需要模拟按键事件,例如创建一个手机遥控器应用,就需要在不同的进程中发送按键事件。本文将详细讲解如何实现Android跨进程模拟按键(KeyEvent)。 首先,我们来看一个基本的发送按键事件...

    Android系统模拟触摸按键

    博文源码《Android基于Socket无线遥控(2)--无线控制篇》 http://blog.csdn.net/zzp16/article/details/7939852 为Android系统添加模拟按键对外接口

    模拟android长按home键

    本篇将详细介绍如何模拟Android设备上的长按Home键操作以及弹出近期任务的实现方法。 首先,理解Android系统的广播机制是关键。当用户执行一个动作,如按下或长按Home键,系统会发送一个对应的Broadcast Intent。...

    模拟键盘输入方式的USB读卡器安卓项目源码

    使用设备是一种模拟键盘输入的读卡器设备,该设备可以直接在Windows下使用,在安卓系统下由于输入法的干扰,大多数无法直接使用。本安卓项目用于拦截该设备扫描内容,可以读出原始字节并转义为卡号,提供更好的兼容...

    安卓按键模拟点击相关-实现自动后台测试模拟android按键.rar

    对于压缩包内的"实现自动后台测试模拟android按键"文件,这可能是一个完整的测试工程示例,包含了实现模拟点击的代码和配置。你可以导入IDEA(IntelliJ IDEA)进行编译和运行,根据错误信息调试代码,以适应你的应用...

    android客户端模拟按键

    在Android平台上,模拟按键控制是一项重要的技术,尤其在自动化测试和特定应用开发中十分常见。本文将详细探讨如何通过三种不同的方法实现这一功能,主要涉及`KeyEvent`、`MotionEvent`以及自动化测试的相关知识。 ...

    adb模拟按键操作

    Android 使用 ADB 模拟按键操作 Android 操作系统中,ADB(Android Debug Bridge)是一种强大的调试工具,通过 ADB,我们可以模拟按键操作,从而控制 Android 设备。下面,我们将详细介绍如何使用 ADB 模拟按键操作...

    android模拟屏幕点击。利用无障碍服务,并申请悬浮窗口权限,全屏幕点击记录触摸控制点,并定时重新模拟点击.zip

    本项目“android模拟屏幕点击”利用了Android的无障碍服务(Accessibility Service)和悬浮窗权限来实现这一功能。以下是相关知识点的详细说明: 1. **无障碍服务(Accessibility Service)** - Android的无障碍服务...

    Android unitTest 按键单元测试项目

    可以使用`Robolectric`这样的测试框架,它可以模拟Android运行时环境,使得测试能在JVM上运行,无需真实设备。 3. **验证结果**:一旦点击事件被触发,我们需要验证它是否正确执行了预期操作,例如更新UI、启动新的...

    android 媒体键监听 以及 媒体键模拟

    在Android开发中,媒体键监听和模拟媒体键盘的实现是两个重要的功能,它们涉及到系统级事件处理和自定义用户交互。下面将详细讲解这两个概念及其实现。 首先,媒体键监听是指应用程序能够捕获并响应系统中的媒体键...

    android实现按键精灵

    综上所述,实现Android的按键精灵需要理解并运用`MotionEvent`来模拟触摸操作,利用AIDL进行跨进程通信,以及可能需要线程和定时器来协调操作的执行。这个DEMO程序"clickdemo"可能就包含这些关键部分的实现,通过...

    远程遥控Android设备(模拟按键、触摸)

    手机维护精灵是一款极具易用性和良好用户体验的Android设备远程维护软件;提供可视化的远程设备维护、FTP文件管理、程序和进程管理、用户信息备份等多项实用性功能,令用户足不出户即可享受专业级的维护体验。手机...

    Android-基于UiAutomator框架自动模拟用户手势操作类似于触摸精灵按键精灵

    这个框架允许我们编写测试脚本来模拟用户的手势操作,实现对应用程序UI元素的精确控制,类似于触摸精灵或按键精灵。本文将深入探讨基于UiAutomator的自动模拟用户手势操作。 首先,我们需要理解什么是UiAutomator。...

    android下触摸按键模拟截屏取色

    在Android系统中,触摸按键模拟、截屏以及抓取颜色是常见的开发需求,尤其是在自动化测试、辅助工具或者个性化应用中。下面将详细讲解这些功能的实现原理和源代码中的关键点。 一、触摸按键模拟 触摸按键模拟在...

    android shell 模拟事件

    在Android Shell中模拟事件是调试和测试应用程序的一种常见方法,特别是对于那些需要手动触发特定用户输入行为的场景。本文将详细介绍如何使用Android Shell来模拟各种输入事件,包括长按、单击和滑动。 1. **基本...

    安卓按键模拟点击相关-android系统模拟点击事件发送QQ消息.rar

    在安卓(Android)系统中,模拟按键点击是一种常见的自动化测试或者辅助工具开发技术。通过编程方式,我们可以模拟用户的各种操作,比如点击、滑动、输入等,以实现自动化任务执行。这个压缩包“安卓按键模拟点击...

    android系统按键驱动

    为了确保按键驱动在Android系统上的正常工作,开发者通常会编写测试用例,模拟按键按下和释放,观察对应的输入事件是否被正确处理。此外,还可以使用`/sys/class/input/event*`目录下的设备节点,通过`cat`命令实时...

    模拟键盘的按键图标

    10. **跨平台兼容性**:无论是桌面应用还是移动应用,模拟键盘应能在多种操作系统(如Windows、macOS、iOS、Android)上运行,这就要求图标设计要具有良好的跨平台适应性。 了解并掌握以上知识点,可以帮助我们构建...

Global site tag (gtag.js) - Google Analytics