mt8788 android 9.0 通过按键来打开APK
碰到个需求,要用物理按键来启动APK。原理就是底层提供一个键值到framework层,framework层直接调用键值通过包名来启动APK,假设底层提供的键值是F3
+++ b/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -6489,9 +6524,29 @@ public class PhoneWindowManager implements WindowManagerPolicy {+ case KeyEvent.KEYCODE_F3:{+ if(down)
+ {+ ActivityManager manager = (ActivityManager)mContext.getSystemService(Context.ACTIVITY_SERVICE);
+ ActivityManager.RunningTaskInfo info = manager.getRunningTasks(1).get(0);
+ String packageName = info.topActivity.getPackageName();
+ if(packageName!=null&&!packageName.equals("com.wzict.tacticalsystem")){+ Intent mintent = new Intent();
+ ComponentName componentName = new ComponentName("com.wzict.tacticalsystem","com.wzict.tacticalsystem.activity.FirstActivity");
+ mintent.setComponent(componentName);
+ mintent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ mContext.startActivity(mintent);
+ }
+ }
+ break;
+ }
再添加一个需求,按下按键和抬起按键的时候都发送一个广播
+++ b/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -6489,9 +6524,29 @@ public class PhoneWindowManager implements WindowManagerPolicy {+ case KeyEvent.KEYCODE_F3:{+ if(down)
+ {+ ActivityManager manager = (ActivityManager)mContext.getSystemService(Context.ACTIVITY_SERVICE);
+ ActivityManager.RunningTaskInfo info = manager.getRunningTasks(1).get(0);
+ String packageName = info.topActivity.getPackageName();
+ if(packageName!=null&&!packageName.equals("com.wzict.tacticalsystem")){+ Intent mintent = new Intent();
+ ComponentName componentName = new ComponentName("com.wzict.tacticalsystem","com.wzict.tacticalsystem.activity.FirstActivity");
+ mintent.setComponent(componentName);
+ mintent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ mContext.startActivity(mintent);
+
+ Intent mintent = new Intent("android.intent.action.F3.down");
+ mContext.sendBroadcastAsUser(mintent,UserMandle.ALL);
+ }
+ else {
+ Intent mintent = new Intent("android.intent.action.F3.uo");
+ mContext.sendBroadcastAsUser(mintent,UserMandle.ALL);
+}
+ }
+ break;
+ }
mt8788 android 9.0 通过按键来打开APK相关推荐
- android app没有读写权限设置,Android 6.0以上权限拒绝打开权限设置界面的解决方法...
本人使用小米手机,打开qq或者微信的时候,某个权限拒绝的话,会提示你开启,点击开启会跳转到app的权限设置界面,当然了,这是国内系统深层定制的原因,也就是说这个界面原声的android没有的!这里以小 ...
- Android 10.0 PackageManagerService(三)APK扫描-[Android取经之路]
摘要:上一节讲解了PKMS的 权限扫描,扫描/system/etc/permissions中的xml,存入相应的结构体中,供之后权限管理使用. 这一节主要来讲讲APK的扫描. 阅读本文大约需要花费15 ...
- Android 4.0.4系统下实现apk的静默安装和启动
转自http://www.linuxidc.com/Linux/2013-02/79403.htm 未亲测 最近在Android 4.0.4系统下实现apk的静默安装和启动的功能,这里和大家分享一下, ...
- android mtk 按键,Android 4.0 虚拟按键、手机模式、平板模式(转)
nullem;text-align:left">平台信息: 内核:linux2.6/linux3.0 系统:android/android4.0 平台:S5PV310(samsungE ...
- android调用另一app的xml,Android 7.0+调用其他App打开文件
近期需要用到读取Android设备外存中的JSON和Word,在前期开发时用于调试的是Android 6.0的米4,当拿到实际应用环境(Android 7.0)时,Android 6.0之后的版本 ...
- Android 7.0 虚拟按键(NavigationBar)源码分析 之 点击事件的实现流程
第二部分: Let's go!!! [点击事件的实现流程] 1.初始化 虚拟按键点击效果的实现和实体按键相似,也是通过上报一个keyCode值,来判断哪个按钮被点击.不同的是,实体按键的keyCode ...
- MT8788 android 9.0 gsensor导致预览与拍出来的照片方向不一致
在项目中,组装好的样机(主板竖着放)与未组装的主板(水平放置)烧写的同一套代码,经测试发现,组装好的样机(主板竖着放)相机预览与照片方向不一致,未组装的主板(水平放置)相机预览与照片方向是正常的.后来 ...
- android 安装 apk 7.0,android 7.0及以上版本安装apk
第一:在AndroidManifest.xml文件下 android:name="android.support.v4.content.FileProvider" android: ...
- Android 4.0按键事件以及系统流程分析
Android 4.0中按键的处理流程 按键在Android系统中,有着不同的代表意义.以前的全键盘的手机代码没有阅读过,所以也不是很了解.本人介绍的是在触摸屏的手机上的按键消息的处理流程. 在现在触 ...
最新文章
- 设计模式之访问者(visitor)模式
- Spring boot定制错误页面
- 类与接口(四)方法重载解析
- 启动物料帐后不可更改物料价格的处理方法
- N!-201308071627.txt
- 【牛客 - 318G】LLLYYY的数字思维 与【牛客 - 289J】这是一个沙雕题II(贪心构造)
- pytorch图像和张量的相互转换_Day107:Pytorch张量类型的构建与相互转换
- 增强服务器安全性能,加强Linux服务器安全的20项建议
- Vue项目构建后通过Nginx/SpringBoot/Express/Egg发布
- MyBatis-Plus自动填充功能填坑
- python 后台系统 源码_这是我见过最好的博客系统!附源码(前端、后台、APP、小程序都有)...
- 老李分享:持续集成学好jenkins之解答疑问
- jquery的历史版本
- jsp中文乱码现象解决办法
- 使用BabeLua在VS中创建Lua项目。
- Java封装、继承、多态、super杂糅在一起的小练习,公司雇员员工工资问题(Employee),练习扩展:创建一个Employee数组,分别创建不同的Employee对象,并打印某个月的工资
- Mac电脑如何设置屏幕保护程序的颜色?
- cobra是什么鬼?
- 【Vue】直播流m3u8,rtsp,rtmp,flv,mp4测试地址
- 驱动开发思路以及应用程序与驱动程序的区别
热门文章
- 艾伟_转载:如何开发绚丽、高效率的界面(Windows嵌入式系统)
- oracle00312,Oracle教程:ORA-16038 ORA-19809 ORA-00312 错误解决
- rancher2.x证书过期
- dc元数据和html描述资源,在HTML中使用DC元数据
- 操作系统对线程的调度问题;CFS
- Android简单美观计算器(界面部分)
- 基于FPGA的交通信号灯设计
- 编译工程——词法分析
- 「近世代數概論」(Garrett Birkhoff,Saunders Mac Lane) 3.1.1 習題1
- java dispo lock_Java Row.getAs方法代码示例