首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用Delphi 10.3在android应用程序中隐藏虚拟键盘

在Delphi 10.3中隐藏Android应用程序的虚拟键盘,可以通过使用以下方法实现:

  1. 调用Android的原生方法:可以使用Android的InputMethodManager类来隐藏虚拟键盘。首先,在程序中引入Androidapi.JNI.GraphicsContentViewText单元,并使用以下代码:
代码语言:txt
复制
uses
  Androidapi.JNI.GraphicsContentViewText,
  Androidapi.JNI.JavaTypes,
  FMX.Platform.Android;

procedure HideVirtualKeyboard;
var
  InputMethodManager: JInputMethodManager;
  WindowToken: JIBinder;
begin
  InputMethodManager := (SharedActivityContext.getSystemService(TJContext.JavaClass.INPUT_METHOD_SERVICE) as ILocalObject).GetObjectID;
  WindowToken := MainActivity.getWindow.getDecorView.getWindowToken;
  InputMethodManager.hideSoftInputFromWindow(WindowToken, TJInputMethodManager.JavaClass.HIDE_NOT_ALWAYS);
end;

在需要隐藏虚拟键盘的地方调用HideVirtualKeyboard方法即可。

  1. 使用FMX.Platform库:Delphi提供了FMX.Platform单元,其中包含了隐藏虚拟键盘的方法。通过以下代码可以实现:
代码语言:txt
复制
uses
  FMX.Platform;

procedure HideVirtualKeyboard;
begin
  if Assigned(TPlatformServices.Current) then
    (TPlatformServices.Current.GetPlatformService(IFMXVirtualKeyboardService) as IFMXVirtualKeyboardService).HideVirtualKeyboard;
end;

同样,在需要隐藏虚拟键盘的地方调用HideVirtualKeyboard方法。

虚拟键盘的隐藏在以下情况下会很有用:

  • 当用户点击屏幕其他区域时,希望隐藏虚拟键盘,以提供更大的可见区域。
  • 在应用程序进入某个特定的界面或者状态时,需要隐藏虚拟键盘,以提供更好的用户体验。

虚拟键盘的隐藏可以增加应用程序的可用空间,并提升用户交互体验。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云移动应用安全保护(Mobile App Protection):为移动应用提供全方位的安全保护,包括App加固、漏洞扫描、加密保护等。详情请参考:腾讯云移动应用安全保护
  • 腾讯云移动推送(Push Notification):提供消息推送服务,帮助开发者实现即时通知和消息推送功能。详情请参考:腾讯云移动推送
  • 腾讯云移动分析(Mobile Analytics):为移动应用提供数据统计、分析和可视化报告,帮助开发者更好地了解用户行为和应用性能。详情请参考:腾讯云移动分析

请注意,以上是腾讯云推荐的产品,其他云计算品牌商可能也提供类似的产品和服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

某查询和短信轰炸样本的分析

通过下图工具查看到,该样本是Delphi语言开发的。相信它是80后才能接触到的开发语言,所以使用这个语言基本是上年纪了,delphi一些早期发展起来的公司的内部工具或系统还会存在低维开发。...从下图的工具分析出,该样本并没有依赖第三方的dll模块,所以主要功能实现都集中恶意样本这个exe应用程序。 静态基础分析是不好分析出具体的功能和数据,接下来就重点动态分析下该exe样本。...动态分析 1、基础隐藏启动 点击启动病毒样本程序后,它会先将原始的软件通过重命名为._cache_恶意样本.exe并进行设置隐藏保存,去运行已感染病毒的exe程序。所以....2、设置隐藏文件 通知直接调用系统SetFileAttributesA函数,将应用设置为隐藏状态,如果没有将文件属性隐藏属性打开,那么是没办法看到应用程序。...4、键盘记录 通过调用SetWindowsHookExA实现钩子注入技术,进行监控键盘的输入信息并进行相对应的信息上传。

29110
  • Android屏幕各部分详细介绍

    前言 目前,android屏幕上大致分成三个部分:通知栏,内容区、虚拟导航栏(NavigatorBar) 因为这三个区域引起的问题数不胜数,必须好好总结一下 一般情况下,三个区域都显示。...这时候通知栏隐藏,内容区向上扩展。 如果在系统设置开启的虚拟手势,虚拟导航栏就隐藏了。这时候内容区就向下扩展。如果同时满足这两个条件,内容区域就实现了真正意义上的全屏。...当NavigatorBar隐藏时,contentView等于rootView的大小。 通知栏高度 我们经常会想用到通知栏高度,但是android并没有提供这个api,那么怎么办?...,比如键盘弹出时,通过rootView获取的这个rect的高度与实际高度不一致,这样就可以判断出键盘的显示和隐藏。...但是如果想得到键盘高度,rootView不行,因为它包含虚拟导航栏,如果实际高度-显示高度,虚拟键盘隐藏时得到的高度要大与键盘高度。

    1.6K20

    谷歌幻灯片可以识别并转录口头报告,创建实时字幕

    如何运行 开始演示之前,点击导航框的小“CC”(隐藏式字幕)按钮(Windows和Chrome操作系统中使用键盘快捷键“Ctrl-Shift-C”或Mac上“⌘-Shift-C”)。...尽管具有这种新功能的主要目标受众是具有某种形式的听力损失的人,但谷歌表示它预计其例范围远远超出此范围。...“该功能主要是为了可访问性目的而构建的,但对所有用户也很有帮助,这一事实表明每个人都可以将可访问的设计和功能整合到产品,”该公司一篇博文中表示。...例如,谷歌文档可让您使用语音编辑和设置文本格式,同时还可通过其移动键盘应用程序Gboard进行语音输入。而Android的电视用户可以搜索的内容使用自然语言语音搜索。...随着智能虚拟助手的兴起,技术巨头们正在努力让他们的声控助手尽可能多地参与其中,而谷歌智能助理几乎每周都会更新新的智能功能。

    1.1K20

    详解Android获取软键盘状态和软键盘高度

    详解Android获取软键盘状态和软键盘高度 应用场景 Android应用中有时会需要获取软键盘的状态(即软键盘是显示还是隐藏)和软键盘的高度。这里列举了一些可能的应用场景。...,这个方法并没有什么,如果它返回false,可以判断软键盘一定是隐藏的,但如果它返回true,软键盘既可能是显示的,也可能是隐藏的。...注册布局变化监听 Android当软键盘隐藏变为显示,或由显示变为隐藏时,会触发当前布局View的全局布局变化。通过监听全局布局的变化就可以得知软键盘的状态。...并不是只有显示和隐藏键盘会触发OnGlobalLayoutListener的回调,一个View绘制完成,或者消失时都会触发OnGlobalLayoutListener的回调(由于onCreate...不过并不是只有软键盘的显示和隐藏会影响窗口的可见区域大小,像大多数的平板和部分手机上有一排虚拟按键(虚拟的返回键,Home键等),虚拟按键的显示和隐藏也会引起窗口可见区域的变化。

    2.8K20

    android基础

    android.intent.category.LAUNCHER 决定应用程序是否显示程序列表里 android:windowSoftInputMode activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题...这个属性能影响两件事情: 【一】当有焦点产生时,软键盘隐藏还是显示 【二】是否减少活动主窗口大小以便腾出空间放软键盘 它的设置必须是下面列表的一个值,或一个”state…”值加一个”adjust…”...各个值之间|分开。...:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示 【C】stateHidden:用户选择activity时,软键盘总是被隐藏 【D】stateAlwaysHidden...:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的 【E】stateVisible:软键盘通常是可见的 【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态

    77420

    加壳工具科普篇

    加壳工具是指注入一段功能代码到 APP ,并可以将原始的二进制指令经过混淆、虚拟化等手段进行等价变换,实现满足 APP 多种安全需求。根据功能的不同可以分为:压缩壳、加密壳、虚拟机壳。...压缩壳 以隐藏程序代码和数据为目的,并将隐藏后的代码和数据进行压缩。但是,压缩壳由于在运行时会将代码段和数据段还原,所以安全性较低。...对于.NET 程序而言主要包括:压缩/元数据隐藏、名称混淆、反调试等。 高级保护功能 高级保护是指函数级保护,对指定的函数进行混淆、虚拟化等保护。具有高安全性,破解难度极高。...目前,应用程序正在向多平台化发展,外壳工具的支持范围可以从以下三个维度来权衡: CPU 架构:是否支持 x86、x64 以及 ARM 32、ARM 64 指令集。...操作系统:是否支持 Windows、Linux、macOS、Android、ARM Linux 等。 程序类型:C/C++、Delphi、Go 等静态语言编译生成的本地可执行程序。

    2.7K20

    windows可以安装安卓APP(含WSA部署小工具下载)

    Windows Subsystem for Android 升级到 2204.40000.15.0,引入了几个主要的改进。本次更新,微软将底层引擎更新为Android 12.1。...该子系统 Hyper-V 虚拟运行,可以将 AOSP 环境应用程序的运行时和 API 映射到 Windows 11 操作系统的图形层、内存缓冲区、输入模式和传感器。...5.Windows 11 任务栏图标现在可以系统托盘显示正在使用麦克风、位置和 Android 应用程序。...同样,如果你使用 Windows 11 的自动隐藏任务栏,你会发现Android应用现在可以正确地隐藏/显示。...8.微软带来了全新高级网络体验, Windows 11 Build 22621 或更高版本,Android 应用程序能够连接到和 Windows 操作系统同一网络上的设备,借助高级网络,用户可以同一网络上的扬声器上播放音频内容

    1.1K40

    Android虚拟导航键的显示隐藏实例

    ); break; case R.id.full: //隐藏显示系统控件的过程不会来移动我们的控件 v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE...,比如状态栏的某些图标,但这个只是系统状态栏、虚拟按键等进入夜间模式,app内部的控件并不会进入夜间模式,这个以后有时间再研究怎么应用内部实现夜间模式。...2.View.SYSTEM_UI_FLAG_HIDE_NAVIGATION,设置这个Flag可以是虚拟按键进行动态的显示和隐藏,因为虚拟按键会占用屏幕控件,所以虚拟按键的显示和隐藏可能会影响到你的控件在当前界面的位置...打开可以看到qemu.hw.mainkeys=1 或者qemu.hw.mainkeys= 0,当qemu.hw.mainkeys=1时实体键盘起效,qemu.hw.mainkeys=0时,显示虚拟键盘,...以上这篇Android虚拟导航键的显示隐藏实例就是小编分享给大家的全部内容了,希望能给大家一个参考。

    1.8K20

    Android监听键盘状态获取键盘高度的实现方法

    最近我的一个项目中,ugc页面需要在键盘顶部,紧贴着键盘显示一个文字提示,当键盘消失时就隐藏. 因此,我需要监听软键盘的打开/关闭 , 以及获取它的高度....当软键盘隐藏变为显示,或由显示变为隐藏时,都会调用当前布局中所有存在的View的ViewTreeObserver对象的dispatchOnGlobalLayout()方法,此方法中会遍历所有已注册的...这个高度可能就是键盘高度了, 为什么说可能呢?因为还么有考虑到顶部的状态栏和底部的虚拟导航栏. 当然也可能不是键盘. 然后我们根据这个高度和之前已知的键盘状态来判断是否为键盘. 并回调给监听者....我通过LayoutParams给它设置边距 , 只设置了底部边距 , 值为返回的”键盘高度”- 顶部状态栏高度-虚拟导航栏的高度. 得到真实的键盘高度....onSoftKeyboardOpened和onSoftKeyboardClosed这两个回调, 处理自己的逻辑就好了.

    2.2K10

    Android 应用开发】对Android体系结构的理解--后续会补充

    Linux Kernel也作为硬件和软件之间的抽象层 , 该层隐藏具体硬件细节 , 为上层提供统一的服务 . ...Dalvik Virtual Machine : Android\虚拟机  , 基于寄存器的 . 大多数虚拟机所采用的基于栈的实现 ....Android所有的应用程序都是通过Java开发的,Dalvik虚拟机上运行的. 6.Application Framework 提供了一组API,四大组件就是该层提供的 , 这层框架还提供了一组服务...linux启动的时候,将该服务加载进来,每个服务都会占用一个Dalvik虚拟机....: windows , linux 下 开发  Java语言知识 应用程序架构 ;  JNI技术 ;  Linux下的C编程 (3)源码开发 : 完全源代码 , Linux开发 ;  Android

    42740

    Android开发高级系列】AndroidManifest.xml专题

    (Android2.3可以标准C来开发应用程序,可在androidManifest.xml中将此属性设置为false,因为这个APP本身已经不含有任何的JAVA代码了)     H、android:...这个属性能影响两件事情:     【A】当有焦点产生时,软键盘隐藏还是显示;     【B】是否减少活动主窗口大小以便腾出空间放软键盘;         各值的含义:     【A】stateUnspecified...:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置;     【B】stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示...;     【C】stateHidden:用户选择activity时,软键盘总是被隐藏;     【D】stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的;...常见的android:name值为android.intent.category.LAUNCHER(决定应用程序是否显示程序列表里)。

    78250

    恶意应用程序上架谷歌商店,下载竟超1000万次

    Web的防病毒团队Google Play商店中发现了一批充斥着广告软件和恶意软件的Android应用程序,令人惊讶的不是这些应用程序是如何通过审核的,而是这些应用程序已在移动设备上安装了近 1000万次...这些应用程序通常会伪装成图像编辑工具、虚拟键盘、系统优化工具、壁纸更换工具等。但是,它们的目的是推送侵入性广告、为用户订阅高级服务或窃取受害者的社交媒体帐户。...此外,他们将图标从应用程序列表隐藏起来,或者类似于核心系统组件的东西替换它们,比如“SIM Toolkit”。...Web还强调了两个分布图像编辑工具的 Facebook 帐户窃取程序,这些应用程序是“YouToon – AI 卡通效果”软件和“Pista – 卡通效果”软件,它们Play商店的总下载量超过150...总的来说,Android恶意软件总会想方设法潜入Google Play商店,甚至有时恶意应用程序还可以商店留存几个月,所以不要盲目相信任何应用程序,检查用户评论和评级、访问开发者网站、阅读隐私政策并在安装过程中注意请求的权限至关重要

    75430

    Android开发之如何自定义数字键盘详解

    前言 这篇文章是介绍Android自定义键盘的一些套路,通过定义一个数字键盘为例,本篇的文章语言是基于Kotlin实现的,如果还没有用或者不熟悉该语言的同学,可以自己补习,我之前也写过入门文章。...6、android:keyEdgeFlags 该属性有两个值,分别是left,right,与指定显示最左还是最右,一般不用此属性。默认从左到右排列。...还有其它属性,不在介绍,可以自己去查阅api 自定义KeyboardView 该类是用来渲染虚拟键盘的类,类中有一个接口OnKeyboardActionListener能检测按键和触摸动作,我们要自定义虚拟键盘...Keyboard,以及布局文件,代码我们看到我们获取到DecorViewid为android.R.id.content的布局,该布局是FrameLayout 布局,我们创建的布局都是放在这个布局中了...hasFocus && mKeyBoardView.visibility == View.VISIBLE) { //如果当前时失去较大,并且当前键盘正在显示,则隐藏 mKeyBoardView.visibility

    3K21

    多款Play Store应用程序分发恶意软件

    近期,研究人员发现数十个应用程序通过虚拟市场传播 Joker、Facestealer 和 Coper 等恶意软件。...这些应用程序一般通过冒充短信、照片编辑器、血压计、表情符号键盘和翻译应用程序的形式出现,一旦用户安装后,应用程序又要求提升设备的权限来进行其它操作。...研究人员经过分析发现 Joker 恶意软件采用了新的策略绕过检测,Joker 开发人员不会等着应用程序获得指定数量的安装和评论后,再更换带有恶意软件的版本,而是使用商业打包程序将恶意负载隐藏在通用资产文件和打包应用程序...存在了六个多月之后才从应用程序商店删除,此时其下载量总计已经超过了 30 万次。...比如 Autolycos 就是通过远程浏览器上执行 URL,然后将结果纳入 HTTP 请求,从而避免了 WebView。

    58550

    Android开发(九) Android Manifest.xml 结构详解

    ,除非内置组件类,比如Activity类,此类使用了AliasActivity类,当然这是个罕见的现象 (Android2.3可以标准C来开发应用程序,可在androidManifest.xml中将此属性设置为...这个属性能影响两件事情: 【A】当有焦点产生时,软键盘隐藏还是显示 【B】是否减少活动主窗口大小以便腾出空间放软键盘 各值的含义: 【A】stateUnspecified:软键盘的状态并没有指定...,系统将选择一个合适的状态或依赖于主题的设置 【B】stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示 【C】stateHidden...:用户选择activity时,软键盘总是被隐藏 【D】stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的 【E】stateVisible:软键盘通常是可见的...【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态 【G】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示 【H】adjustResize

    1.2K30

    分辨率获取异常-Android更新引发的小坑

    : 背景: 最近几个月我们经常收到用户反馈,输入法不同设备上,英文26键键盘长的不一样,有的有一行数字,有的没有。...其实这里涉及到我们的英文26键数字键盘的开关下发策略: 只针对手机分辨率等于1080*1920的用户,下发网络开关打开英文26键数字键盘(详细背景这里不阐述了)。 ?...经过调查,Android4.2之前是没有虚拟导航栏这个概念的,当时的java函数也不会考虑到这一点,Android4.2之后才引入了虚拟导航栏,同时采用了一套新的函数来获取真实分辨率。...而我们输入法目前仍然使用的是Android4.2之前的方法,详细如下: 我们使用的获取屏幕分辨率的方法是: ? 这个方法获取到的屏幕分辨率是会被虚拟导航栏吃掉高度的。...经过网上查询了解到Google已经更新了获取分辨率的方法,使用新方法,无论手机虚拟导航栏是否隐藏都可以正确的获取分辨率。 ? 结论及反思: 问题原因找到了,同步给开发更换方法。

    1.2K10
    领券