android home按键拦截
发布日期:2021-06-29 15:23:36 浏览次数:3 分类:技术文章

本文共 935 字,大约阅读时间需要 3 分钟。

home按键默认现在没法屏蔽,但是mtk由于特殊需要,需要拦截home按键,于是添加了一套机制实现。
1:在alps\frameworks\base\core\java\android\view WindowManager.java
里面添加一个属性
        /** M: Window flag:  When this flag is set, the home key can be dispatched
        * to the window.
         * {@hide} */
        public static final int FLAG_HOMEKEY_DISPATCHED = 0x80000000;
2:在 alps\frameworks\base\policy\src\com\android\internal\policy\impl PhoneWindowManager.java 
里面的
    public long interceptKeyBeforeDispatching(WindowState win, KeyEvent event, int policyFlags) {
接口里面,添加
       if (keyCode == KeyEvent.KEYCODE_HOME) {
            /// M: [ALPS00054781]Dispatch the home key to the application @{
            if (win != null && win.getAttrs() != null) {
                final int flag = win.getAttrs().flags;
                if ((flag & WindowManager.LayoutParams.FLAG_HOMEKEY_DISPATCHED) != 0) {
                    // the window wants to handle the home key, so dispatch it to it.
                    return 0;
                }
            }
通过这里来拦截home按键
3:如果需要app拦截
在 activity 的 onCreate 里面增加
getWindow().addFlags(FLAG_HOMEKEY_DISPATCHED);
即可。

转载地址:https://codegg.blog.csdn.net/article/details/41381619 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:android 模拟冻屏 代码实现
下一篇:android 屏幕常亮代码

发表评论

最新留言

很好
[***.229.124.182]2024年04月28日 05时26分24秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章