当前位置: 首页 > 知识库问答 >
问题:

Android:每次按下电源按钮时光线传感器都会触发的解决方法?

张逸清
2023-03-14

我正在开发一个Android应用程序,当光传感器值低于阈值时,它会关闭设备的屏幕,当光传感器值高于阈值时,它会再次打开屏幕。这个阈值由用户通过一次性校准决定。一切都很好,屏幕在应该打开和关闭的时候打开和关闭,我已经处理了光传感器值的持续波动,这样屏幕就不会一直随机打开和关闭。

我面临的问题是,当按下电源按钮时,由于某种原因触发了光传感器的“onSenorChanged”事件。这意味着如果用户按下电源按钮关闭屏幕,如果它处于正确的照明状态,它会自动重新打开。

我想到的解决方案是保留一个标志变量,如果按下电源按钮,该变量将不允许我的服务中的代码执行,但问题是 Android 不允许我检测到来自服务的电源按钮按键。

这个问题是否有另一种可能的(也许更合乎逻辑的)解决方法?

我不认为张贴代码会有帮助,但如果你需要我张贴它,请让我知道。

谢谢

共有1个答案

钱稳
2023-03-14

与其跟踪电源按钮按下的标志,为什么不在关机时保留一个标志呢?这样,如果它因为任何其他原因被关闭,它不会做任何事情。

编辑:另一个想法...

您可以做的是跟踪上次触发ACTION_SCREEN_OFF意图的时间。如果从调用onSensorChanged开始的时间小于某个阈值(0.05s?),您可以忽略(或至少不要重新打开它)。

 类似资料:
  • 我是开发Android应用程序的新手,我想做的是创建一个可以读取电源按钮按下时间的应用程序,以制作一个可访问性应用程序。 也许如果我能控制或计算屏幕打开和屏幕关闭事件,这可能会有所帮助。

  • 我是一个新手,我正在尝试创建一个应用程序来在我的投资组合中使用。本质上,该程序是一个可以访问不同菜单的菜单(json文件:texas_pick.js,Breakth.js…),该程序旨在以按钮的形式显示菜单选项,按钮的详细信息从各自的json文件中检索。我面临的问题是,单击菜单选项时,会检索最后一个菜单项的数据。我将后端编程为只将商品名称和价格推送到数据库,而前端则检索这些数据并将其显示在表上。检

  • E/AndroidRuntime:致命异常:主进程:com。维内特。计算器,PID:29435 java。lang.NullPointerException:尝试调用虚拟方法的布尔java。朗,布尔<代码>在此输入代码booleanValue()”在com的空对象引用上。维内特。计算器主要活动16美元。android上的onClick(MainActivity.java:177)。看法看法andr

  • 本文向大家介绍WPF中button按钮同时点击多次触发click解决方法,包括了WPF中button按钮同时点击多次触发click解决方法的使用技巧和注意事项,需要的朋友参考一下 解决WPF中button按钮同时点击多次触发click的方法,供大家参考,具体内容如下 以上代码并没法解决用户点击两次按钮触发两次的问题,因为ui线程是单线程的,所以这个这样会导致用户连续点击两次,会两秒后又调用Butt

  • 我是Android新手。我正在尝试制作一个应用程序,它将在后台运行,并检测三次快速按下电源按钮。我查阅了很多资料,但无法澄清我的困惑。谁能给我一些建议吗?蒂亚。

  • 我找到了其他相关的问题,但没有一个答案实际上解决了我的问题。这个按钮在IE上很好用,但在Chrome上不行。我尝试移除span元素,将按钮放在任何其他标记之外,但仍然触发了两次。这个temple扩展了一个'base.html'文件,代码位于'main'元素中。 HTML: jQuery: