在 Android 中通过摇动打开/关闭屏幕

2024-05-06

我正在制作一个应用程序,需要在用户摇动手机时打开/关闭屏幕。到目前为止,我已经有了一个 SensorEventListener,它可以按照答案中的建议监听震动这个问题 https://stackoverflow.com/questions/2317428/android-i-want-to-shake-it.

当我检测到震动时,我会按照中的建议更改屏幕亮度的值这个问题的答案 https://stackoverflow.com/questions/1875669/calling-hidden-api-in-android-to-turn-screen-off。如果我实际上没有关闭屏幕,这一切都很好...如果我通过将亮度设置为 0.01fpublic void setBright(float value)方法效果完美。但是,如果我将亮度设置为 0.0f,手机将不会再次转动屏幕......至少在我按下电源按钮之前不会。

我想做的事情可能吗?我究竟做错了什么?

- 编辑 -

谢谢Dre https://stackoverflow.com/users/23033/dre and 冰激凌 https://stackoverflow.com/users/314089/icyerasor我进一步研究了这个问题。我获得了一个部分唤醒锁定 http://developer.android.com/intl/fr/reference/android/os/PowerManager.html之前我把亮度设置为0.0f,但是晃动手机还是不亮。然而,当我调试应用程序时,我发现当我在屏幕关闭的情况下摇动手机时,setBright(1.0f) 会被正确调用;我怀疑锁屏在某种程度上弄乱了它,因为当我按下电源按钮时它就会启动。按下电源按钮后,应用程序将继续像平常一样工作。有没有办法绕过锁屏?

感谢您的帮助!


不过,我同意 icyerasor 的猜测——如果猜测正确并且手机将要休眠,您将必须获得一个PARTIAL_WAKE_LOCK http://developer.android.com/intl/fr/reference/android/os/PowerManager.html让CPU保持清醒before您将亮度设置为 0.0

我会在回答之前对此进行测试,但目前我无法访问 Android 设备。

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

在 Android 中通过摇动打开/关闭屏幕 的相关文章

随机推荐

  • 在 mdn web 文档中 Element.querySelector 方法说它应该是后代,但示例显示不然

    我正在从 MDN 网络文档学习 JavaScript 我刚刚在学习Element querySelector method 据记载 它返回第一个元素 该元素是调用它的元素的后代 并且与指定的选择器组匹配 但有一个例子与这个事实相矛盾 var
  • 为什么 RISC-V S-B 和 U-J 指令类型以这种方式编码?

    我正在读一本书 计算机组织与设计RISC V版 我遇到了 S B 和 U J 指令类型的编码 我上面提到的那些类型有奇怪的编码立即字段 S B 类型将直接字段分为两部分 这是有道理的 因为所有指令编码都必须相似 但我无法理解为什么立即字段以
  • 将附加数据获取到 django 表单下拉选择中

    我有一个具有外键的操作模型 它指定操作重复发生的频率 class Reoccurance models Model label models CharField Label max length 50 unique True days mo
  • jQuery Mobile 和页眉/页脚问题

    使用 jQuery Mobile 有人知道为什么当使用 changePage 函数更改到内容超出视口高度的页面时 页面的页眉会消失而页脚会出现在内容顶部的视图中吗 仅当您使用过渡来更改页面时才会发生这种情况 如果您在没有过渡的情况下更改页面
  • JavaScript 动态变量名称[重复]

    这个问题在这里已经有答案了 好吧 我想在用户单击时创建变量 每次单击都会添加一个新变量 我目前正在使用 jquery 和 javascript 我无法在服务器端执行此操作 这必须在浏览器中完成 newCount document getEl
  • ElasticSearch 嵌套查询 - 排除父文档

    尝试排除其中子文档之一与查询不匹配的顶级文档 对于下面的示例 我尝试排除其嵌套作业之一具有的所有文档current true 并与company name Elastic 但由于嵌套作业文档之一与current false和公司name E
  • Istio 允许所有出口流量

    如何允许 Istio 的所有出站流量 我尝试了以下方法 禁用出口网关并 使用 set global proxy includeIPRanges 0 0 0 0 0 0 0 0 0 0 绕过 sidecar 所有选项都不起作用 值得一提的是我
  • Java:是否有工具可以使代码(在第 3 方 JAR 中)向前兼容(1.4 - 1.6)

    我有一个使用 Java 1 4 编译的第 3 方 JAR 文件 有没有一个工具可以使jar文件兼容Java 1 6 类似于 retrotranslator 但它的反面是什么 我尝试反编译类文件并在 1 6 中重新编译它们 但失败了 问题是这
  • 在 Spark-submit 上的 _find_and_load 中获取文件“”,第 991 行

    我目前使用的是Python 3 7 9 spark spark 2 4 6 bin hadoop2 6 在这个项目 venv 中 我的设置为 kafka python 2 0 2 pip 21 2 4 py4j 0 10 9 pyspark
  • 未捕获的类型错误:emit 不是 vue3 中的函数

    当我在 vue 3 设置代码块中编写此代码以获取输入值时 请遵循此answer https stackoverflow com questions 66737918 how to use v model on component in vu
  • Kendo 有 GUI 设计师吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Kendo 有没有像 Sencha Architect for Ext JS 这样的控件布局设计工具
  • IMAP 同步

    我正在实现 IMAP 客户端 但 IMAP 邮箱同步存在问题 首先 可以从 IMAP 服务器获取新邮件 但我不知道如何从邮箱中查找已删除的邮件 我应该从服务器获取所有消息并与本地数据进行比较以进行同步吗 通常的方法是对每个文件夹执行以下两个
  • nginx docker 容器:502 错误网关响应

    我有一个服务监听 8080 端口 这不是一个容器 然后 我使用官方镜像创建了一个 nginx 容器 docker run name nginx d v root nginx conf etc nginx conf d p 443 443 p
  • VBA:新集合 -> 模块不是有效类型

    我尝试使用集合作为函数的一部分 但是在编译时不断收到错误 模块不是有效类型 即使该函数只是定义一个集合 我也会得到相同的结果 Function CountUniqueTags Dim table As Collection Set tabl
  • Hibernate HQL 中使用派生表的子查询

    我有一个 Hibernate HQL 问题 我想将子查询编写为派生表 出于性能原因 在 HQL 中可以做到这一点吗 例子 FROM Customer WHERE country id in SELECT id FROM SELECT id
  • 无法在函数内将数据写入 Excel 2007/2010 中的 VBA 单元格

    我想通过 VBA 设置单元格的值 我用谷歌搜索了一下 看到了一些解决方案 Sheets SheetName Range A1 value someValue Sheets SheetName Cells 1 1 value someValu
  • 如何从numpy数组中获取两个最小值

    我想从数组中取出两个最小值x 但是当我使用np where A B np where x x min 0 1 我收到此错误 ValueError 需要超过 1 个值才能解压 我该如何修复这个错误 我需要在数组中按升序排列数字吗 您可以使用n
  • 哪个线程运行 ContentProvider?

    如果我从 Activity 调用 ContentProvider ContentProvider 会在哪个线程中运行 例如 如果 Activity 被终止并且查询正在 ContentProvider 中执行 会发生什么情况 假设您的网络查询
  • [GSI_LOGGER]:“callback”的值不是函数。配置被忽略

    I m 迁徙 https developers google com identity gsi web guides migration from 谷歌登录平台 https developers google com identity si
  • 在 Android 中通过摇动打开/关闭屏幕

    我正在制作一个应用程序 需要在用户摇动手机时打开 关闭屏幕 到目前为止 我已经有了一个 SensorEventListener 它可以按照答案中的建议监听震动这个问题 https stackoverflow com questions 23