关于Android 9隐藏底部虚拟按键

  • 遇到的问题
  • 解决办法

遇到的问题

现在需要在安卓9.0的系统上进行修改,目的是在使用自己的app时无法退回到系统桌面。

解决办法

  办法一: 首先想到的是在app的软件上进行尝试,参考了网上的许多教程之后,都不行,由于Android 9 的特性,及时虚拟按键是隐藏了,但是通过侧边滑动,还是能够出来,放弃。
  办法二:第二个解决办法那就是在系统源码上进行修改了,通过查阅资料,控制虚拟按键显示的文件位于frameworks/base/packages/SettingsProvider/res/values/defaults.xml 路径下
的此行代码中

<string name="policy_control" translatable="false">immersive.full=*</string>

通过设置policy_control的值,可以改变虚拟按键的显示状态,有以下四种情况:

  1. 全屏沉浸模式(包括状态栏和虚拟按键): immersive.full=*
  2. 状态栏沉浸:immersive.status=*
  3. 虚拟按键沉: immersive.navigation=*
  4. 隐藏并且弃用:null

其中沉浸模式就是默认全屏,但是通过滑动还是能够显示出来,类似玩游戏看电影时的效果。
  将policy_control设为null后,虽然行得通,也确实无法退回桌面,但是在横屏播放视频的时候,虚拟按键的位置还是占据了屏幕的空间,显示为黑色,这样体验感就大大折扣了,由于这个源码之前别人改过,不知道是不是什么地方冲突了,无奈只能另寻思路。
  办法三:在网上找遍了也没有找到屏蔽滑动呼出的方法,既然这样那就将虚拟按键的布局文件给改了,最后决定将按键的宽高设为0,这样即使呼出来也无法进行点击。
具体方法为:修改frameworks/base/packpages/SystemUI/res/layout路径下的navigation_bar.xml文件,修改源码为:

<com.android.systemui.statusbar.phone.NavigationBarInflaterViewandroid:id="@+id/navigation_inflater"android:layout_width="0dp"android:layout_height="0dp"/>

这样最后的效果最接近预期。

关于Android 9 隐藏虚拟按键的问题相关推荐

  1. android dialog隐藏虚拟按键,Android应用开发之Android dialog 去除虚拟按键的解决方法...

    本文将带你了解Android应用开发Android dialog 去除虚拟按键的解决方法,希望本文对大家学Android有所帮助. Android   部分机型没有物理按键,只有虚拟按键,Activi ...

  2. android dialog隐藏虚拟按键,dialog全屏且不会弹出虚拟按键

    1.首先在res/values/styles中自定义dialog属性 @android:color/transparent true @null true false 2.在dialog的构造函数中s ...

  3. android dialog 隐藏键盘,android dialog 隐藏虚拟按键

    试了网上很多的方法,都没什么用,最后抄的 google 开发者网站上的代码 public static void hideSystemUI(Window window) { // Enables re ...

  4. android dialog隐藏虚拟按键,关于此框架在BottomSheetDialogFragment使用时,华为手机底部虚拟按键弹出与隐藏时输入框位置不贴键盘...

    我这边试过还是不行,而且我们ui是要dialog不全屏的,下面附上代码 public void onStart() { super.onStart(); Dialog dialog = getDial ...

  5. java屏蔽虚拟按键代码_Android 中隐藏虚拟按键的方法实例代码

    下面通过一段代码给大家讲解android 隐藏虚拟按键的方法,废话不多说了,大家多多看看代码和注释吧,具体代码如下所示: /** * 隐藏虚拟按键,并且全屏 */ protected void hid ...

  6. 隐藏Android下的虚拟按键

    隐藏Android下的虚拟按键 要隐藏Android下的虚拟按键,可通过如下办法操作 [cpp] view plaincopy adb root adb remount adb shell ls -a ...

  7. Android 4.2虚拟按键背景透明,Android 4.0 隐藏虚拟按键(导航栏)的方法

    在Android4.0里,多了一些API,其中包括怎样隐藏虚拟按键(导航栏),这样编写游戏或一个视频播放器时,可以设置隐藏虚拟按键的参数,达到最佳效果,当然前提是使用的手机是有虚拟按键的,例如gala ...

  8. Android 隐藏虚拟按键

    Android 隐藏虚拟按键 领导要求: 横屏播放视频时,不展示虚拟按键: 恢复到竖屏时,展示虚拟按键: /*** NavigationBar 显示与隐藏*/ public class Navigat ...

  9. Android常见公有方法(隐藏虚拟按键/隐藏软键盘/获取屏幕宽高等)

    隐藏虚拟按键,并且全屏 使用: ScreenUtils.hideBottomUIMenu(getWindow().getDecorView()); /*** 隐藏虚拟按键,并且全屏*/public s ...

最新文章

  1. [Windows]ping itsafe环境变量
  2. Shell脚本调试工具set
  3. 洛谷P4173:残缺的字符串(FFT、通配符匹配)
  4. 晚上美容护肤10要诀 - 健康程序员,至尚生活!
  5. php删除数组中的空行,php处理文件的思考(去除空行、每行多余字符)
  6. Java Swing 如何关闭当前窗口?
  7. java参数注解pam_CAS3.4 关于PAM模块SSL的详细配置
  8. resiprocate之message
  9. Spring 使用注解注入 学习(四)
  10. Network In Network论文笔记
  11. [Asp.Net Core]Session的使用
  12. 通信技术专业技术人员考试 动力与环境_中级通信工程师动力与环境考试大纲...
  13. 解决Macbook安装win10/win11时遇到的WDF_Violation 蓝屏错误问题 - 安装Bootcamp驱动蓝屏
  14. Excel批量设置数字转化成“以文本形式存储的数字
  15. 物尽其用,数码相机兼职摄像头!
  16. 下个五年,跨境支付的变数在哪里?
  17. 【Android -- 写作工具】Markdown 分割线
  18. linux系统给安卓root权限,安卓手机该如何获取Root权限?方法很简单,但不建议Root...
  19. 可视化篇:R可视化--迁徙/通勤图
  20. 单片机实验——十六路抢答器 ,抢答器是一种应用十分广泛的设备,在各种竞赛、抢答场合中,它能迅速、客观地分辨出最先获得发言权的选手。本设计采用矩阵键盘节省输入的I/O口,带有奇偶校验的双单片通信。

热门文章

  1. 一加8 线刷官方ColorOS尝鲜版遇到的各种问题及解决方案
  2. ROS学习笔记-用脚本发布cmd_vel话题
  3. creo打不开stp文件_为什么stp网站打不开 creo打不开stp文件
  4. godaddy php5.ini,Godaddy主机修改上传文件限制
  5. 由C注释向C++注释转换简单实现
  6. java.lang.arr_以太坊常见问题和错误 / java.lang.ArrayIndexOutOfBoundsException? - 汇智网...
  7. linux上centos镜像磁盘,VirtualBox中配置linuxCentOS的本地磁盘镜像iso作为其软件源
  8. 20110814炒股日记--关于内外盘【600192长城电工】
  9. java学生成绩降序代码_输入5名学员成绩,降序排列输出
  10. Linux之网络管理