安卓系统级返回键和HOME键
来源:互联网 发布:淘宝客恶意骗佣金 编辑:程序博客网 时间:2024/09/21 09:26
最近的一个项目需要写一个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() { @Override public void onClick(View v) {//back键 BackKeyService.backKeyService.performGlobalAction(AccessibilityService.GLOBAL_ACTION_BACK);}}就这一句话是不是很简单,但是实际在用的时候会有些不方便,大家有时间体验一下就知道了,所以我就采用
第二种方法。
第二种方法:使用反射的机制来调用Android底层,如果对反射不太了解的同学可以自己度娘一下,当时我也是
重新去复习了一下,因为自己也很久没有用了。。。。
back_selector.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {//back键 Runtime runtime = Runtime.getRuntime(); try { runtime.exec("input keyevent " + KeyEvent.KEYCODE_BACK); } catch (IOException e) { // TODO Auto-generated catch block e.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),如果各位在开发时遇到什么可以问我,大家一起分享交流!
0 0
- 安卓系统级返回键和HOME键
- cocos2d-X之安卓home键和返回键的响应
- android实现系统的返回键和home键
- 屏蔽返回和home键
- 安卓屏蔽home键
- 安卓-监听home键
- 安卓 屏蔽home键
- 安卓手机修改音量键为HOME和BACK
- 安卓去除虚拟按键(home键,返回键,列表键)
- 安卓之关于监听home键返回桌面的总结
- unity调用安卓原生activity,按Home键返回被杀死问题解决
- android屏蔽返回键和Home键
- Android屏蔽返回键和Home键
- android屏蔽返回键和home键
- Home键和返回键的区别
- 屏蔽home键和返回键盘
- 安卓如何获取安卓系统版本的号及安卓4.0以下如何屏蔽home键
- Android系统onKeyDown监控/拦截/监听/屏蔽返回键、菜单键和Home键
- java双向链表
- Flex 布局教程
- DT10功能介绍 - DT10多波示波器
- Thrift设置超时等信息(Java)
- cocoapods:常见错误总结
- 安卓系统级返回键和HOME键
- 个人笔记 collections.sort comparator comparable
- Nexus3.xx私服搭建
- 在Notepad++上搭建Windows下Shell运行环境
- HDU5477
- 高通8x12平台开机画面制作工具
- Spring-MVC开发之全局异常捕获全面解读(转载)
- Failed to connect to remote VM. Connection refused. Connection refused: connect
- hdu 4810 排列组合C(n,m) 数组存