`
surecn
  • 浏览: 6258 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Android 开启虚拟菜单键

阅读更多

android 新版本已经不推荐使用menu键,虽然api隐藏了,但还是可以通过反射的方式进行调用

对于sdk版本小于21(包含)的可以用Window 的addFlags 获取clearFlags的方法开启或关闭

对于sdk版本大于21的可以通过给WindowManager.LayoutParams 的 needsMenuKey设置相应的值来进行开启或关闭

 

封装成一个方法

public void setVirtualMenu(boolean flag){
        try {
            if (Build.VERSION.SDK_INT > 21) {
                WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
                WindowManager.LayoutParams.class.getField("needsMenuKey").set(layoutParams, flag ? 1 : 2);
                getWindow().setAttributes(layoutParams);
            } else if (Build.VERSION.SDK_INT <= 21) {
                if (flag) {
                    getWindow().addFlags(WindowManager.LayoutParams.class.getField("FLAG_NEEDS_MENU_KEY").getInt(null));
                } else {
                    getWindow().clearFlags(WindowManager.LayoutParams.class.getField("FLAG_NEEDS_MENU_KEY").getInt(null));
                }
            }
        }catch (NoSuchFieldException e) {
            e.printStackTrace();
        }catch (IllegalAccessException e) {
            e.printStackTrace();
        }
    }

 

 

分享到:
评论

相关推荐

    android 独立按键和菜单键 打开menu

    这篇博客"android 独立按键和菜单键 打开menu"探讨了如何在Android应用中处理这两种按键事件,以便在按下它们时显示菜单。我们将深入讨论相关知识点,并提供详细的实现步骤。 首先,我们来了解Android中的按键事件...

    android重写多任务键,返回键,打开外部链接,打开menu

    本教程将深入探讨如何在Android应用中重写多任务键、返回键,并处理打开外部链接及menu菜单的操作。以下是对这些功能的详细说明: 一、重写多任务键 在Android系统中,多任务键(通常位于屏幕下方的硬件按键或屏幕...

    ADB命令控制安卓手机(虚拟按键、状态栏)显示隐藏,或者直接禁用。

    这个命令模拟按下菜单键,从而隐藏虚拟按键。若要重新显示,再次执行此命令。 5. 禁用/启用状态栏:对于状态栏,没有直接的ADB命令可以隐藏或显示。但你可以通过修改系统设置达到目的,这通常需要root权限。如果你...

    [安卓,android源码] Android平台替代虚拟按键悬浮球,参考魅族悬浮球设计。捡代码论坛整理提供

    当用户长按悬浮球时,弹出一个包含多个选项的菜单,如打开设置、截屏、调整音量等。菜单的设计可以通过PopupWindow或者Dialog实现,点击菜单项后执行相应功能。 此外,为了让悬浮球与系统虚拟按键平滑共存,我们...

    Android-AssistiveTouch-配合Android手机沉浸式隐藏虚拟按键后快捷操作

    在Android系统中,虚拟按键(通常包括返回、主页和多任务键)为用户提供了一种方便的交互方式。然而,随着全面屏手机的发展,为了增加显示面积,越来越多的设备选择将虚拟按键进行隐藏或采用手势控制。在这种背景下...

    VM虚拟机安装Android_2.2和设置虚拟SD卡

    1. 开启虚拟机后,你会看到一个启动菜单。使用方向键选择第五个选项,因为它是硬盘安装选项。 2. 按回车键,进入下一个界面,选择第一个选项开始安装。 3. 接下来,选择[NEW]来新建分区,选择[PRIMARY]创建主分区,...

    为Android手机的选单键及返回键加入功能1

    需要注意的是,虽然这种方法简单有效,但它可能不适用于所有设备,尤其是那些没有物理菜单键的现代Android设备,它们可能依赖于虚拟按键或者手势操作。在这种情况下,你可能需要额外处理Android系统的`OnBackPressed...

    iphone虚拟按键apk

    3. 多任务键:打开多任务切换界面,允许用户快速在打开的应用之间切换。 4. 快捷方式:用户可以根据个人需求自定义一些快捷功能,如截屏、锁屏、音量控制等。 在使用iPhone虚拟按键apk时,用户可能会遇到的问题包括...

    Android_按键的键值

    以上介绍了Android按键键值的一部分内容,包括常见的方向键、数字键、字母键以及特殊功能键。通过理解和使用这些键值、动作码和标记,开发者能够更灵活地处理用户的输入事件,从而提高应用程序的用户体验。在实际...

    Linux系统下在Android模拟器中使用虚拟SD卡设备方法

    - 打开AVD Manager(Android Virtual Device Manager),编辑选中的虚拟设备,添加SDCard的镜像文件路径。 - 进入AVD Manager后,选择需要编辑的虚拟设备,点击“Edit”按钮,然后在“SD Card”选项中指定SD卡映像...

    Android Studio 皮肤资源

    在Android开发环境中,Android Studio是官方推荐的集成开发环境(IDE),它提供了丰富的功能和工具,使得开发者可以高效地创建和管理Android应用。在本文中,我们将深入探讨Android Studio中的"皮肤资源"以及如何...

    黑盒BlackBox是一款免费开源的虚拟引擎,它可以在 Android 上下载和运行虚拟应用程序

    黑盒BlackBox是一款免费开源的虚拟引擎,它可以在 Android 上下载和运行虚拟应用程序,无需安装 APK 文件即可在设备上运行应用程序。简言之,即可在Android上克隆、运行虚拟应用,拥有免安装运行能力。黑盒可以掌控...

    androidx86

    同时,需要注意 EFI 引导的童鞋在进入 U 盘的 Android x86 的时候,需要开启传统引导模式,不然就会在引导菜单中没有 U 盘的选项。 在 Virtual Box 中的准备工作 1. 新建一个虚拟机,系统类型选择 Android x86,...

    Android Studio 创建Android项目之HelloWorld

    为了在真实设备上运行应用,首先确保你的Android设备已经开启“USB调试”模式,并通过USB线连接到电脑上。不同的Android版本可能会在设置菜单的位置上有所不同,但通常位于“开发者选项”中。连接设备后,电脑可能...

    Android模拟器的创建

    - **Menu键**:打开菜单,通常映射到F2或PgUp键。 - **Back键**:返回上一级界面或退出程序,映射到ESC键。 - **Search键**:在支持搜索的应用中快速打开搜索框,映射到F5键。 - **Call/Dial键**:启动拨号面板或...

    android与eclipse集成和android开发简介

    安装SDK后,打开SDK Manager,这是一个图形化界面,用于管理不同的Android平台版本、工具和其他可选组件。你需要至少安装一个Android版本的API,以及Android SDK Build-Tools,这两个是开发的基础。此外,AVD ...

    如何在Eclipse环境配置Android

    本文将详细介绍如何在 Eclipse 环境下配置 Android 开发环境,包括安装必要的工具、配置环境变量、安装 Android SDK 和 ADT 插件、配置 Android SDK 路径、创建 Android 虚拟设备、建立简单的 Android 项目和运行...

    android ADT配置安装

    1. **打开MyEclipse 6.5**,进入“帮助”菜单。 2. **软件更新**:依次选择“帮助”→“软件更新”→“查找并安装...”。 3. **搜索新特性**:点击“下一步”后,选择“查找新特性进行安装”。 4. **添加远程站点**...

Global site tag (gtag.js) - Google Analytics