Android 检测按下电源键

2023-12-06

我的应用程序需要知道屏幕是否由于超时或用户单击电源按钮而关闭。

我决定检查是否按下了电源按钮。 我在这里读了一些问答并想出了这个:

public class MyActivity extends Activity {    

    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_POWER) {
            Log.w("Test", "Power button down detected");
            return true;
        }
        return false;
    }


    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_POWER) {
            Log.w("Test", "Power button up detected");
        }
        return false;
    }
}

我还添加了这个:

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

这不起作用,它不打印日志。


尝试从BroadcastReceiver:

public class MyBroadCastReciever extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
        //DO HERE
    } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
        //DO HERE
    }
}
}

和你的清单:

<receiver android:name=".MyBroadCastReciever">
<intent-filter>
    <action android:name="android.intent.action.SCREEN_OFF"/>
    <action android:name="android.intent.action.SCREEN_ON"/>
</intent-filter>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 检测按下电源键 的相关文章

随机推荐

  • 正则表达式是测试 url 的好方法吗

    我正在尝试测试使用 php5 输入的 url 的有效性 我想过使用正则表达式 但假设它始终正常工作 它只能解决 url 在语法上有效的问题 它没有告诉我有关网址正确或有效的任何信息 如果可能的话 我正在尝试寻找另一种解决方案来同时完成这两件
  • 带参数改造post请求

    我正在使用邮递员扩展来发送请求 我想对 android 提出同样的请求 我使用改造库来实现我的目标 但我无法获得成功的结果 我的代码错误在哪里 Postman 我的界面 public interface Interfacem FormUrl
  • 项目控件将其自身从容器控件中删除

    有一个容器控件 TScrollBox 它是多个项目控件的父控件 每个项目控件本身都是复合的 包含 父级和拥有 一个删除按钮 按下该按钮将启动项目控件的删除 删除涉及释放组件 因此实际操作应该与该项目无关 问题是 最好的方法是什么 我实际上知
  • OCaml 与非常量的模式匹配

    是否可以对变量而不是常量值进行模式匹配 let x 2 in let y 5 in match 2 with x gt foo y gt bar gt baz let y 5 in Warning 26 unused variable y
  • 如何在导出xml中添加DOCTYPE?

    我使用 PHP 导出了一个 xml 文件 xmldoc new DOMDocument xmldoc gt formatOutput true xmldoc gt encoding Shift JIS create root nodes r
  • 与Subject在组件之间共享数据

    我正在尝试在 Angular 6 中的两个组件之间与主题共享数据 不知怎的 它不起作用 我不知道为什么 我需要通过单击将数据从compare component 传递到profile component 当我点击时 数据没有传递 但不知怎的
  • EOFError:读取一行时出现EOF

    我正在尝试定义一个函数来制作矩形的周长 这是代码 width input height input def rectanglePerimeter width height return width height 2 print rectan
  • 如何用java在现有PDF中添加空白页? [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我有普通的 PDF 文件 我想使用在 PDF 末尾插入空白页itext LIBRARY
  • 如何使用 HTML/JavaScript 捕获客户端“桌面”部分的屏幕截图?

    我知道如何捕获网页 但我想问如何捕获桌面或桌面中的其他应用程序 如果有办法突出显示屏幕的某些部分 就像 html2canvas 对网页所做的那样 我们可以使用 HTML JS 中的浏览器应用程序为桌面应用程序做一些事情吗 对的 这是可能的
  • 不使用 GROUP_CONCAT 的原因?

    我刚刚发现了这个非常有用的 MySQL 函数GROUP CONCAT 它对我来说似乎非常有用并且过于简单化 以至于我实际上害怕使用它 主要是因为我开始网络编程已经有一段时间了 而且我从未在任何地方见过它 一个很棒的用法示例如下 Table
  • Android OnTouch 和 OnClick 的区别

    有什么区别吗OnTouchListener and OnClickListener 我不是从编程的角度来问 而是从用户体验的角度来问 使用哪一个更好 我们需要两者都实施吗 使用哪一个更好 这实际上取决于您的要求 onTouch为您提供运动事
  • 语言/操作系统之间的进程间通信

    我正在寻找一种进程间通信工具 可以在相同或不同系统上运行的语言和 或环境之间使用 例如 它应该允许在 Java C 和 或 C 组件之间发送信号 并且还应该支持某种排队机制 唯一明显与环境和语言无关的设施是文件 但我认为这会太慢 并且严格的
  • 如何在 webview 组件中检索 Javascript 函数值

    如何从 webview 组件中加载的网页中检索 Javascript 函数值 你不能直接 您可以通过以下方式调用 Javascript 函数loadUrl javascript where 是你的函数调用 但是 您无法通过这种方式得到结果
  • 为什么 snprintf 在打印单个数字时始终比 ostringstream 快 2 倍?

    我正在测试各种格式化方法doubleC 中的 s 这是我想出的一些代码 include
  • 如何在两个应用程序之间共享 Spark RDD 的数据

    在两个 Spark 作业之间共享 Spark RDD 数据的最佳方式是什么 我有一个案例 作业 1 Spark 滑动窗口流应用程序将定期消耗数据并创建 RDD 我们不想将其持久化到存储中 作业 2 查询作业将访问作业 1 中创建的相同 RD
  • MenuStrip 和 ToolStrip 上的“红十字”问题

    我有一个在许多机器上运行良好的软件 尽管在一台机器上偶尔会出现一个问题 MenuStrip 和 ToolStrip 都显示为空白的白色背景 上面有一个红色十字 作为自定义控件如果您创建了一个 null 对象 则会发生这种情况 当我调试时 这
  • 将文件保存到手机而不是 SD 卡

    在我的应用程序中 我通过执行以下操作将 XML 文件保存到用户的 SD 卡中File newxmlfile new File Environment getExternalStorageDirectory Message xml 但并非所有
  • JavaCard 的数学库?

    我目前正在开发一个 JavaCard 项目 v 2 2 2 我需要使用平方根 对数等来计算值 我知道Math类在 JavaCard API 中不可用 想知道是否存在另一个提供此类操作的库 而且我也不能用double价值观 但我需要 有没有一
  • 如何从谷歌应用程序脚本获取自动刷新谷歌电子表格自定义单元格功能[自定义功能刷新]

    在制作新工作表或更改工作表名称或复制工作表或从谷歌电子表格中删除工作表时 如何通过谷歌应用程序脚本自动刷新工作表名称的当前列表 我需要工作表名称列表 有很多张 新工作表将由其他用户添加 新工作表的名称将被其他用户更改 某些工作表将被其他用户
  • Android 检测按下电源键

    我的应用程序需要知道屏幕是否由于超时或用户单击电源按钮而关闭 我决定检查是否按下了电源按钮 我在这里读了一些问答并想出了这个 public class MyActivity extends Activity Called when the