最近的一个项目需要写一个Launcher,所以需要用到自定义的back键和home键,之前在网上查找了很多资料,但是很多都很老了,在新的安卓版本上不能使用,所以这次特别把自己的处理方法发出来,我在最新的华为和小米,魅族上测试时可以使用的,一来方便以后使用的时候查找,另外也方便大家。老规矩,还是上代码先:

Home键:

Intent intent =new Intent(Intent.ACTION_MAIN);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

   intent.addCategory(Intent.CATEGORY_HOME);startActivity(intent);
   
   这里一定要加Intent.FLAG_ACTIVITY_NEW_TASK,如果没有加的话在4.4版本会没有效果,在5.1版本
会报错,在6.0版本也没有效果,当时我也是测试了很多版本才解决这个问题的。 
    Back键:
    Back键要相对麻烦一些,我这里有两种方法来调用系统级别的back键功能,一种是调用系统辅助功能的
方式,另外一种是直接通过反射的原理来调用android的底层接口。这两种方法都各有优劣。
    第一种方法不好的地方是在调用前需要手动设置一次权限,有点像微信红包功能一样,需要调用
AccessibilityService的服务,大家还是先看看我的代码吧:  
  1.先写了一个服务类:                                                                                
  2.在要使用back键的控件上使用如下方法:
   
 back_selector.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//back键BackKeyService.backKeyService.performGlobalAction(AccessibilityService.GLOBAL_ACTION_BACK);}}
 就这一句话是不是很简单,但是实际在用的时候会有些不方便,大家有时间体验一下就知道了,所以我就采用
第二种方法。

   第二种方法:使用反射的机制来调用Android底层,如果对反射不太了解的同学可以自己度娘一下,当时我也是
重新去复习了一下,因为自己也很久没有用了。。。。
   
back_selector.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//back键Runtime runtime = Runtime.getRuntime();try {runtime.exec("input keyevent " + KeyEvent.KEYCODE_BACK);} catch (IOException e) { // TODO Auto-generated catch blocke.printStackTrace();}}}
     这种方法可以在4.2以下的机型直接使用,但是在这版本以上的就不可以了,要解决这个问题,必须
使用signApk工具,对platform.pk8和platform.x509.pem重新签名,签名的方法很简单:
     1.把项目的apk放在signApk的包内。
     2.然后运行cmd,并定位到singApk这个包的位置,我的文件位置如下图:
    
     3.在后面输入java -jar SignApk.jar platform.x509.pem platform.pk8 launcher-debug.apk sign_app.apk
     4.如果成功就会在包内生成一个名叫sign_app.apk,然后将它安装在你的安卓设备,你的back键
就可以正常使用了哦
     5.下面的附件就是所需要的signApk包

   以上方法我已经在安卓常用的机型和软件版本测试过是可以正常使用的(机型覆盖主流机型的85%,版本
从4.2到6.0),如果各位在开发时遇到什么可以问我,大家一起分享交流!

安卓系统级返回键和HOME键相关推荐

  1. 安卓* 系统级 Java*/C++ 代码调试

    1 简介 应用开发人员当前可通过安卓* SDK 来设计和构建安卓应用项目,并使用 Eclipse* 进行调试. 但是它并没有提供相应的功能来调试系统级 Java*/C++ 代码,该代码位于安卓代码库中 ...

  2. 安卓10侧边返回_向返回键说拜拜,安卓10向全面屏手势继续迈进

    原标题:向返回键说拜拜,安卓10向全面屏手势继续迈进 [PConline 资讯]全面屏在手机的应用已经愈发常见,更大的屏幕挤占了原本留给实体按键排布的位置,全面屏手势也就应运而生.苹果手机在iPhon ...

  3. 非Root环境下安卓实现全屏,屏蔽下方虚拟按键:左键、右键。较新安卓系统无法屏蔽Home键。源代码例子

    非Root环境下安卓实现全屏,屏蔽下方虚拟按键:左键.右键.较新安卓系统无法屏蔽Home键. 全屏后,用户上划之后点击虚拟按键如图所示: 代码中分三部分: 1.隐藏屏幕下方的虚拟按键,并且全屏.   ...

  4. 混合开发监听安卓手机物理返回键

    混合开发监听安卓手机物理返回键 在用h5做混合开发过程中由于有个考试考试页面,中途不能退出,退出要添加确认操作,所以需要监听手机的返回操作,不让用户直接通过返回键返回 目前了解到混合开发中有两种方式监 ...

  5. unity调用安卓手机物理返回键和home键

    使用unity制作游戏时,有时候需要在游戏中触发手机的物理返回键和home键,下面在update方法中每帧监听是否按下了该键,然后写入自己要调用的方法 using System.Collections ...

  6. android 点击返回键home键,appium怎么按下系统按键?如按下返回键、home键等等

    ava_client3.0版本以后使用pressKeyCode方法,之前的版本使用sendKeyEvent方法 1. 返回:driver.pressKeyCode(AndroidKeyCode.BAC ...

  7. Android: 创建一个AlertDialog对话框,必须按确定或取消按钮才能关闭对话框,禁止按[返回键]或[搜索键]关闭

    AlertDialog.Builder builder = new Builder(this); builder.create().show(); 这样显示出来的对话框,当用户按返回键或搜索键时,这个 ...

  8. android按任意建关闭对话框,Android: 创建一个AlertDialog对话框,必须按确定或取消按钮才能关闭对话框,禁止按[返回键]或[搜索键]关闭...

    AlertDialog.Builder builder = new Builder(this); builder.create().show(); 这样显示出来的对话框,当用户按返回键或搜索键时,这个 ...

  9. 安卓10侧边返回_Flyme 8 体验:可能是最好的国产安卓系统

    每年夏末秋初,都是各大厂商为自家手机系统更新换代之时. 在这条时间线上,EMUI 10 已经发布,Flyme 8 刚刚发布,MIUI 11 也即将登场.与左右两位不同的是,Flyme 8 底层基于 A ...

最新文章

  1. SpringBoot (七) :SpringBoot 整合dubbo
  2. 机器学习系列之手把手教你实现一个分类回归树
  3. openwrt 遍译php_[OpenWrt Wiki] OpenWrt编译 – 说明
  4. 如何提高英语听力(内容摘自NECCS)+ 乘法表
  5. android webview file,Android WebView 不支持 H5 input type=file 解决方法
  6. HGE引擎适用于MFC的修改
  7. lisp 发凹圆角_css能实现这样的内凹圆角吗?如何实现?具体代码是!!
  8. 动感灯箱制作流程培训_从事广告行业20年老师傅,揭秘广告牌类型和制作工艺流程 !...
  9. python脚本在linux上运行的两种方式_python脚本当作Linux中的服务启动实现方法
  10. 局域网访问虚拟机VMware6.5
  11. html一个div调用的一个php页面,打开一个HTML文件,一个div/iframe中内PHP
  12. 【报告分享】2020年重点行业薪酬趋势指南.pdf(附下载链接)
  13. 通俗易懂!视觉slam第十部分——贝叶斯估计
  14. 生产者消费者模式-java原生、Disruptor实现方案
  15. Java程序员须知的七个日志管理工具
  16. sd卡的速度怎么测试软件,【有图】怎么测SD卡的速度-蜂鸟网
  17. PHP工具箱无法启动Mysql问题
  18. 传华为公司又一名技术部员工乔向英猝死
  19. openCV中sobel边缘增强
  20. npm 中报错3 errors and 3 warnings potentially fixable with the`--fix` option.

热门文章

  1. 第8次博文;如何将图片导入进pychrm中,我告诉你.
  2. 商务统计_14 统计指数
  3. 2023年全国职业院校技能大赛中职组网络安全竞赛试题B模块 —湖南省Windows操作系统渗透测试任务(flag)
  4. 北斗GNSS卫星导航定位芯片架构和设计发展趋势
  5. GIT 学习笔记(2) —— GIT 基础
  6. 网格员计算机应用基础知识,社区工作者考试之网格管理员知识经验参考
  7. 故障特效AE视频模板 Modern Glitch Intro
  8. 利用IC负载开关的特性,安全地降低功耗
  9. 信息提取中分块或表达式
  10. Ant Design 前端页面设计汇总