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

在android中捕获电源按键?

万阳嘉
2023-03-14

我需要捕获Android中的电源键按下。我尝试了以下方法

      @Override
   public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(KeyEvent.KEYCODE_POWER == event.getKeyCode()){
              //some operations
          }
    return super.onKeyDown(keyCode, event);
    }

但使用此代码按下电源键控制不进入onKeyDown方法。

长按电源键时,会调用此方法。但我需要的是,我需要在单次按压时捕捉到这一事件

有人能帮忙吗?

共有2个答案

郏正信
2023-03-14

您可能缺少清单中允许应用程序覆盖power key默认行为的权限,如果您已处理事件以防止默认行为,则返回一些内容也很重要。

<uses-permission android:name="android.permission.PREVENT_POWER_KEY" />

这里还有进一步的讨论

所以你的代码应该是:

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if(KeyEvent.KEYCODE_POWER == event.getKeyCode()){
              return true;//If event is handled, falseif 
        }
        return super.onKeyDown(keyCode, event);
    }

如果处理了该事件,则返回true。如果要允许事件由下一个接收器处理,请返回false。

卫阳曜
2023-03-14

有很多线程,你必须添加权限。

<uses-permission android:name="android.permission.PREVENT_POWER_KEY" />

如何钩入Android中的电源按钮?

 类似资料:
  • 活动中有和按钮和。 在WebView上加载“http://youtube.com”。 你可以看到youtube页面,然后点击电影。 电影将在HTML中播放。 单击按钮进行屏幕捕捉。 将捕获的图像设置为ImageView。 如何在WebView上捕获电影? 请帮帮我.

  • 我想在我的应用程序中捕获,也要在后台运行的服务中捕获该事件。为此,我对广播接收器使用了以下代码。 onReceive()方法: 有了这个代码,我能够检测按钮的按下事件内接收器。 现在我想检测电源按钮是否被按下3秒或更长时间,然后我想在接收器内执行特定操作。为此,我找到了这个方法 但我发现这个方法只能在活动中运行,但我想在服务中调用它。 有没有办法检测电源按钮是否按下了3秒钟,或者我们可以在服务内部

  • 问题内容: 我用Java制作了一个简单的媒体播放器,但是我 想记录诸如+的全局按键,以暂停/恢复当前正在播放的音乐, 而JFrame没有聚焦, 但是由于JVM安全问题,似乎无法实现。 我遇到了JNativeHook,但是我只想为Windows实现我自己的方法。请建议如何做以及从哪里开始? 问题答案: Jintellitype是一个比较简单的解决方案。 https://code.google.com

  • 我正在制作一个android应用程序,它需要检测设备电源按钮按下两次/三次的事件 下面是我尝试过的代码,它不工作... 我的代码: 清单文件:

  • 简单场景-ScrollView托管一个具有多个子元素的LinearLayout,这是在Android上开发支持滚动的视图的首选模式。 我需要捕获onScrollEvents,启动,停止等。如果我使用ListView/onScrollListener组合,它们很容易获得并且工作得很好。 用于滚动视图的专用小部件是否具有捕获这些事件的内置功能?加油!我尝试过 OnTouchEvent 听众,onGes

  • 问题内容: 我想在我的小应用程序中捕获关键事件。 我做了什么: 怎么了: 按下键时,会播放声音效果。 我看过很多帖子,都在谈论这是如何属于和没有访问权限的委托。但是函数自动完成的类类型使我相信这是错误的。 问题答案: Xcode 8.2.1•Swift 3.0.2 要消除按字符键时发出的刺耳的声音,您需要对视图进行子类化,重写方法performKeyEquivalent并返回true。 样例项目