如何阻止 Android 上的“拨号”、“主页”、“返回”和“结束通话”按钮

2023-12-08

我想知道如何阻止 Android 设备上的拨号、主页、返回和结束通话按钮。

我知道这是可能的,因为有一个应用程序:TheftAware 确实会阻止所有按钮,因此它们根本不起作用。

我还想知道如何制作一个对话框窗口或任何类型的窗口,无论如何它都会保持在顶部(这也是在theftaware中完成的)。

他们还能够阻止(隐藏)通话屏幕......有人知道他们是怎么做到的吗?

注意:这是否意味着 Android 并不那么安全?


我只是想在这里澄清一些信息。

BeRecursive 中的代码示例在某些方面是不正确的。正如已经指出的,它不会阻止主页按钮,但它还有其他问题:

  1. 为了消费该事件,所以 Android 框架的其余部分不会 采取行动,你需要返回true来自onKeyDown处理程序,not false。合同是这样的true表示处理的应用程序 活动和框架应该 不执行默认按键事件 处理。 (Praveen 的代码示例也有同样的问题)。

  2. 从Android 1.5及更高版本开始, Android 框架移动了 动作激活来自onKeyDown to onKeyUp。所以你还需要 来实现阻塞onKeyUp处理程序,而不仅仅是onKeyDown处理程序。

  3. 可以阻止KeyEvent.KEYCODE_CALL按钮使用 这种技术,但不是KeyEvent.KEYCODE_ENDCALL按钮。 这似乎是为了安全 原因。

最后来说说设置技巧WindowManager.LayoutParams.TYPE_SYSTEM_ALERT就实际阻止任何硬件按钮而言对我没有任何影响。它对于抑制其他应用程序的弹出窗口可能很有用,但我还没有充分探索这一点。

Android 团队提供了很多有用的信息这篇博文.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何阻止 Android 上的“拨号”、“主页”、“返回”和“结束通话”按钮 的相关文章

  • 单击弹出菜单时为什么导航栏出现在全屏应用程序中

    我有一个全屏应用程序 MainActivity java public class MainActivity extends AppCompatActivity TargetApi Build VERSION CODES KITKAT pr
  • 如何在 Android / Java 中获取图像的分辨率

    如何在 Android 中找到任何图像的分辨率 获取存储在磁盘中的图像大小的有效方法 例如获取用户选择上传的图像文件的大小 是使用BitmapFactory Options并设置inJustDecodeBounds为真 这样做你就会获取图像
  • Android 中用虚拟键盘捕捉按键按下的情况?

    使用物理键盘 您可以使用按键监听器 http developer android com reference android text method KeyListener html 就像是 myEditText setOnKeyListe
  • Firebase 数据库快速入门处理计数的方式安全吗?

    我想为文章点赞创建一个增量字段 我指的是这个链接 https firebase google com docs database android save data save data as transactions https fireb
  • 在 Anko DSL 中创建自定义 View/ViewGroup 类

    我想创建一个自定义视图 它只是一些 Android 视图的包装 我考虑创建一个自定义 ViewGroup 来管理其子视图的布局 但我不需要这么复杂 我基本上想做的是 class MainActivity verticalLayout tex
  • Android 自定义视图不能以正确的方式处理透明度/alpha

    我正在绘制自定义视图 在此视图中 我使用两个不同的绘画和路径对象在画布上绘画 我基本上是在绘制两个重叠的形状 添加 Alpha 后 视图中重叠的部分比图像的其余部分更暗 这是不希望的 但我不知道如何解决它 这是我的代码片段 用于展示我如何在
  • 如何获取.so文件的依赖项列表?

    假设我有libFoo so为 android arm 编译 我不确定它链接到什么STL实现 有options http developer android com intl ru ndk guides standalone toolchai
  • 毕加索动画加载图像

    我有以下代码在毕加索中加载图像 使用可绘制的占位符在图像下载时显示 不过 我想要的是一个动画旋转进度条样式的旋转器 它可以在图像加载时不断地旋转 就像我在大多数专业应用程序中看到的那样 毕加索似乎不支持这一点 只支持静态图像可绘制 有没有办
  • 使用 RecyclerView 适配器在运行时更改布局屏幕

    我有两个布局文件 如下所示 如果列表中存在数据 则我显示此布局 当列表为空时 我会显示此布局 现在我想在运行时更改布局 当用户从列表中删除最后一项时 我想将布局更改为第二张图片中显示的 空购物车布局 In getItemCount Recy
  • 应用内结算错误

    我的 UNMANAGED 应用内购买无法正常工作 在它完美运行之前 我可以使用测试帐户成功购买 但它突然不起作用了 因为我记得我对商家帐户所做的只是添加更多 2 4 个测试帐户 添加后 我的应用内购买将不起作用 所以我更新了公钥并上传了一个
  • 如何查看 Android 上的 Wi-Fi 是否已连接?

    我什至不希望我的用户尝试下载某些内容 除非他们连接了 Wi Fi 然而 我似乎只能判断是否启用了 Wi Fi 但他们仍然可以有 3G 连接 android net wifi WifiManager m WifiManager getSyst
  • 导航抽屉默认片段

    我是一名新手开发人员 我正在将导航抽屉与 android support v7 集成到我的应用程序中 我有一个问题 当我启动应用程序时 主要布局是这样的
  • 如何以编程方式启动 ssh 服务器 android,以及如何获取连接到设备的用户名和密码

    我正在开发像这样的应用程序sshdroid 我想在 Android 操作系统上打开 ssh 连接 并且我想从电脑连接应用程序 我使用了 JSCH lib 但是这个lib用于将android连接到pc 我的要求是pc到android 任何人都
  • java.lang.IllegalArgumentException:找不到片段的 id 0x1020002 (android:id/content) 的视图

    我正在尝试从一个片段移动到另一个片段 它在片段事务期间显示以下错误 java lang IllegalArgumentException No view found for id 0x1020002 android id content f
  • BottomSheetDialog get Behavour 始终返回 null

    我与底部表单对话框我必须获得行为才能设置setBottomSheetCallback 来处理一些事情 As 谷歌说 https android developers googleblog com 2016 02 android suppor
  • Android 从命令行停止模拟器

    这个问题与如何通过命令行关闭Android模拟器 https stackoverflow com questions 5912403 how to shut down android emulator via cmd 但是 在尝试第一个答案
  • 将图像添加到自定义 AlertDialog

    我制作了一个 AlertDialog 让用户可以从我显示的 4 个选项中选择一个 前 3 个让他们在单击号码时直接拨打号码 第 4 个显示不同的视图 现在看起来是这样的 由于第四个选项的目的是不同的任务 我想让它看起来不同 因为用户可能会感
  • FCM onMessageReceived 应用程序运行时返回空白消息和标题

    正如您在标题中所写 当应用程序关闭时 它运行良好 并且onMessageReceived获取消息正文和标题 但如果应用程序处于前台模式 运行模式 则可以发送通知 但没有消息和标题 请问该怎么办 代码 Override public void
  • Android ScrollView fillViewport 不工作

    我有一个简单的布局 名称位于顶部 按钮位于屏幕底部 或者超出该按钮 以防我添加更多项目 所以我使用带有 LinearLayout 的 ScrollView 如下所示
  • 当ScrollView滚动到底部时加载更多数据

    我有一个带有动态加载内容的滚动视图 有时可能会有很多内容 所以我想在用户滚动到底部时加载更多内容 我搜索了合适的方法 发现了两种 onScrollChanged and getScrollY 但我不知道如何将它用于我的目的 请给我一些建议

随机推荐

  • 使用ajax发送base64图像

    我正在尝试从画布中生成图像 并通过 ajax 发出的 POST 请求将其发送到服务器 我正在使用 html2canvas 将 div 转换为 canvas 并使用 toDataURL 将其转换为 base64 这是我的JS function
  • 如何在 XPath 中使用 AND 运算符?

    XML 就像 a b value1 b b value2 b a 我想写 XPath 来查找 id a 那里会有两个 b 具有固定值的子节点value1 and value2 我试图找出 XPath 的条件如下 xml gt xpath b
  • 在 Objective-C 中如何在视图控制器之间传递对象?

    我花了两天时间艰难地研究一些代码 试图找出为什么我无法获取我在 h 中声明并在 m 中实现并在 viewDidLoad 函数中设置的全局 NSMutableArray 变量 我终于明白了 Objective C 中不存在全局变量这样的东西
  • 横向启动应用程序会导致启动时旋转

    我已经实现了shouldAutorotateToInterfaceOrientation 并且在我的应用程序运行后 在条款或方向更改方面一切正常 但是 我不喜欢我的应用程序首次启动时的行为 当我以纵向启动我的应用程序时 它会按预期打开 但是
  • 如何确定 Android 中的语音信箱电话号码

    如何在 Android 代码中确定手机的语音信箱号码 您可以在 TelephonyManager 类中使用 getVoiceMailNumber 请注意 这可能不适用于所有手机提供商 Android 电话管理器
  • 如何将 .dds 文件加载到图片框中?

    如何在 C 中将 dds 纹理文件加载为图像 我在谷歌上找不到任何有用的东西 你给我的信息和样本越多 我就越能理解它 我遇到过同样的问题 这是一个很好的解决方案 Source http www mastropaolo com devildo
  • Azure 数据工厂:事件未启动管道

    我已经设置了一个包含复制活动的 Azure 数据工厂管道 出于测试目的 源和接收器都是 Azure Blob 存储 我不想在源 Azure Blob 存储上创建新文件后立即执行管道 我创建了 BlovEventsTrigger 类型的触发器
  • 类型 Set 不带参数

    package set import java util public class Set public static void main String args String things appple bob ham bob bacon
  • 使用 decltype() 和三元运算符有条件地选择类型

    我有一个文件a cpp include
  • 使用 C# 在 WebDriver 中打开新窗口

    EDIT 4 EDIT 3 EDIT 2 string currentWindow driver CurrentWindowHandle driver SwitchTo Window string childTitle driver Tit
  • .py 和 .pyc 文件有什么区别? [复制]

    这个问题在这里已经有答案了 我注意到了 pyc当某些情况下会自发生成文件 py运行同名文件 有什么区别 py and pyc files 另外 我发现有 pyc周围的文件使空间变得混乱 是否应该删除 pyc文件 或者让它们存在有什么好处和
  • Python3 表情符号字符作为 unicode

    我在 python3 中有一个字符串 其中包含表情符号 我想将表情符号视为它们的 unicode 表示形式 我需要对这种格式的表情符号进行一些操作 s hello 这将每个表情符号视为自己的角色 这样len s 9 s 0 我想更改字符串的
  • 如何使用子字符串分割字符串

    我有一个像 Test1 Test2 这样的字符串 我需要将 Test2 与它分开 我怎样才能在 C 中做到这一点 尝试这个 string toSplit Test1 Test2 toSplit Split or toSplit Split
  • Android:当我动态添加新的 ListView 条目时,ListView 中的微调器会丢失其值

    我的活动包含一个按钮和一个列表视图 ListView 包含一个 Spinner 视图和一个 EditText 视图 每次我想在 Activity 的 ListView 中插入新行条目时 我都会使用该按钮 我按照以前的 stackoverfl
  • Scala:基于类型的列表分区

    我有这段代码想要改进 sealed abstract class A case class B extends A case class C extends A case class D extends A case class Foo T
  • Linq 的 IEnumerable.Select 是否返回对原始 IEnumerable 的引用?

    我试图在代码中克隆一个列表 因为我需要将该列表输出到其他代码 但原始引用稍后将被清除 所以我想到了使用Select扩展方法来创建对某个对象的新引用IEnumerable相同的元素 例如 List
  • 如何使用 jQuery 和 AJAX 刷新 ASP.NET ListView?

    我有一个包含许多 ListView 的页面 我希望用户能够对其进行排序和分页 我不想每次都回发并重新绑定整个页面 而是想通过 jQuery AJAX 有选择地针对相关控件进行操作 我很乐意在页面中对 WebMethod 进行客户端调用 我的
  • 导出到 csv - Linq 查询

    我在 linq 中有一个类可以像这样查询数据库表 问题是 如何将该数据导出到 csv 我已经尝试过建议的链接 并且正在使用 linq2csv 但仍然想知道如何按顺序获取列 谢谢 var usr from usr in db User sel
  • 在 R 中创建一个包含 100 列所需列名称的数据框

    我想创建一个包含 100 列的数据框 其名称为 feature1 feature2 feature3 feature100 我能够将数据框创建为 df lt as data frame matrix 0 ncol 100 nrow 2 但我
  • 如何阻止 Android 上的“拨号”、“主页”、“返回”和“结束通话”按钮

    我想知道如何阻止 Android 设备上的拨号 主页 返回和结束通话按钮 我知道这是可能的 因为有一个应用程序 TheftAware 确实会阻止所有按钮 因此它们根本不起作用 我还想知道如何制作一个对话框窗口或任何类型的窗口 无论如何它都会