Home键监听与电源键

本文介绍了如何在Android应用中实现对Home键和电源键的监听。通过创建BroadcastReceiver,可以监听到Home键被按下,并在相应事件中执行自定义逻辑。同时,文章也展示了如何在权限设置中加入"android.permission.WAKE_LOCK",以便监听电源键(屏幕关闭)事件。在onCreate和onDestroy方法中进行接收器的注册与注销,以防止错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Home键监听

编写广播接收器
    private final BroadcastReceiver homePressReceiver = new BroadcastReceiver() {
        final String SYSTEM_DIALOG_REASON_KEY = "reason";
        final String SYSTEM_DIALOG_REASON_HOME_KEY = "homekey";

        @Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
            if(action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) {
                String reason = intent.getStringExtra(SYSTEM_DIALOG_REASON_KEY);
                if(reason != null
                        && reason.equals(SYSTEM_DIALOG_REASON_HOME_KEY)) {
                    // 自己随意控制程序,关闭...
                }
            }
        }
在onCreate中注册接收器
        final IntentFilter homeFilter = new IntentFilter(
                Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
        registerReceiver(homePressReceiver, homeFilter);
在onDestory()中解除注册防止报错
        if(homePressReceiver != null) {
            try {
                unregisterReceiver(homePressReceiver);
            }
            catch(Exception e) {
            }
        }

电源键监听

首先,我们是要获取系统权限
<uses-permission android:name="android.permission.WAKE_LOCK" />
监听Action
    // Intent.ACTION_SCREEN_OFF;
    // Intent.ACTION_SCREEN_ON;
    private final BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(final Context context, final Intent intent) {
            final String action = intent.getAction();
            if(Intent.ACTION_SCREEN_OFF.equals(action)) {

            }
        }
    };
    // onCreate()方法中注册
    IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
    registerReceiver(mBatInfoReceiver, filter);

    // onDestory()方法中解除注册
    if(mBatInfoReceiver != null) {
        try {
            unregisterReceiver(mBatInfoReceiver);
        }
        catch(Exception e) {
       }
    }




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值