应用界面覆盖锁屏_覆盖系统锁屏问题-程序员宅基地

技术标签: SystemUI详解  

要求:

启动应用后灭屏.然后power按键亮屏之后显示应用界面不是锁屏界面.

方法:

屏蔽锁屏界面,这个功能只在滑动锁屏有效,谷歌估计考虑到安全问题,没有放开权限,毕竟3方应用并不可靠.

方法1

//在oncreate方法加
        final Window win = getWindow();
        final WindowManager.LayoutParams params = win.getAttributes();
        params.flags |= WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
                | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD;

方法2
以前的方法,由于KeyguardLock应该过时,建议上面的方法,而且使用KeyguardLock方法,还要考虑退出的时候要把锁屏还原.

    KeyguardManager mKeyguardManager;
    KeyguardManager.KeyguardLock mKeyguardLock;
    public void controlKeyguard(boolean enable) {
        if (true) return;
        if (mKeyguardManager == null || mKeyguardLock == null) {
            mKeyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
            mKeyguardLock = mKeyguardManager.newKeyguardLock("FxLock");
        }

        if (enable) {
            mKeyguardLock.reenableKeyguard();
        } else {
            mKeyguardLock.disableKeyguard();
        }
        Log.i("wangcan", enable ? "reenableKeyguard" : "disableKeyguard");
    }

如果要设置后台启动,方法2 需要在服务里面监听亮屏广播,然后启动界面.下面启动用方法1,Systemui(9.0)的滑动锁屏要先一步启动,8.1 甚至需要滑动解锁才会进入应用界面

public class ScreenOnService extends Service {
    private BroadcastReceiver powerOnOffReceiver;
    KeyguardManager mKeyguardManager;
    KeyguardManager.KeyguardLock mKeyguardLock;
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        return super.onStartCommand(intent, flags, startId);
    }
    @Override
    public void onCreate() {
        super.onCreate();
        powerOnOffReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                if (intent.getAction().equals("android.intent.action.SCREEN_ON")) {
                    Log.i("wangcan", "startActivity");
                    Intent lockIntent = new Intent(context, MainActivity.class);
                    lockIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    startActivity(lockIntent);
                } else if (intent.getAction().equals("android.intent.action.SCREEN_OFF")) {
                    //屏蔽手机内置的锁屏
                    controlKeyguard(false);
                    //启动该第三方锁屏
                }
            }
        };
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction("android.intent.action.SCREEN_ON");
        intentFilter.addAction("android.intent.action.SCREEN_OFF");
        registerReceiver(powerOnOffReceiver, intentFilter);
    }

    public void controlKeyguard(boolean enable) {
        if(mKeyguardManager==null || mKeyguardLock ==null){
            mKeyguardManager = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE);
            mKeyguardLock = mKeyguardManager.newKeyguardLock("FxLock");
        }

        if (enable) {
            mKeyguardLock.reenableKeyguard();
        } else {
            mKeyguardLock.disableKeyguard();
        }
        Log.i("wangcan", enable ? "reenableKeyguard" : "disableKeyguard");
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        controlKeyguard(true);
        unregisterReceiver(powerOnOffReceiver);
    }
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/w1764662543/article/details/86528971

智能推荐

nagios监控日志脚本check_logfile-程序员宅基地

文章浏览阅读144次。nagios 自带的Plugin check_log监控日志比较单一,对于对日志监控比较高的生产环境下还是不行的。consol.de 出的check_logfile很不错很强大,支持正则表达式。详细官方说明如下:http://labs.consol.de/lang/de/nagios/check_logfiles/我以监控apache日志为例..._nagios 脚本抓取日志输出关键字

Android build.prop参数详解_build.prop详解-程序员宅基地

文章浏览阅读1.8w次,点赞9次,收藏40次。前言 build.prop是Android系统中的一个重要的属性文件,它记录了Android系统运行的很多配置信息,当程序运行时需要某种系统状态时,会到该模块中进行读取,类似Window中的注册表对少量配置信息进行存储,改变它能够取得一些意想不到的效果,但是也正是因为.prop的重要性,如果不明白具体的含义的话,绝对不要随便动它。build.prop参数详解# beg_build.prop详解

CSS3引入外部字体(苹方字体下载链接)_css3 pingfang字体下载-程序员宅基地

文章浏览阅读7.1k次,点赞2次,收藏2次。pingfang链接 : https://pan.baidu.com/s/1vyxkN-Edg17gVPHlnFoqsA提取码:zwk0CSS3引入代码:等待引入的文件@font-face { font-family: 苹方黑体-准-简; src: url(../fonts/苹方黑体-准-简.ttf);}*{ font-family: 苹方黑体-准-简;}..._css3 pingfang字体下载

开发java超级玛丽的素材_超级玛丽完整素材-程序员宅基地

文章浏览阅读1.9k次。【实例简介】红白机的超级玛丽全部素材,包括所有图片(地图瓦片、人物、怪物、特效等,已全部对齐)、音乐、音效【实例截图】【核心代码】超级玛丽`-- resources|-- fonts| `-- Fixedsys500c.ttf|-- graphics| |-- enemies.png| |-- item_objects.png| |-- level_1.png| |-- mar..._超级玛丽素材csdn

Tiptop T100鼎捷智能物流平台 Tiptop GP鼎捷智能物流平台 鼎捷APP二维码整体解决方案 鼎捷APP 鼎捷移动解决方案 鼎捷安卓PDA扫码方案 鼎捷WMS 鼎捷二次开发提供源码-程序员宅基地

文章浏览阅读320次。Tiptop T100鼎捷智能物流平台 Tiptop GP鼎捷智能物流平台 鼎捷APP二维码整体解决方案 条码管理系统 鼎捷ERP移动解决方案 鼎捷WMS仓库移动扫码 鼎捷安卓PDA扫码方案。支持鼎捷Tiptop T100、Tiptop GP平台二次开发,已经在十多家企业在使用此产品,欢迎更多企业使用。网盘下载APP、webservice源码更多信息。

windows server 2008 R2 AD 域之---组策略软件分发-程序员宅基地

文章浏览阅读1.1k次。安装和维护软件对于我们从事IT行业的人来说是常有的事,也是一件特别耗时的事。现在技术的不断发展也同时带动着软件的频繁更新,为了适应公司作业的需求,我们也只能随着潮流将软件卸了又装,装了又卸。一两台机如果采用手动进行安装相信不是件难事,但是当我们面对几十、上百上千甚至更多的客户端要同 时安装新软件时,采用手动操作可想而知是件又耗时又耗力的事,而且还存在被他人追在屁股..._2008r2ad域如何下发软件

随便推点

conda 环境里使用pip安装成功的包,无法使用,找不到。_no module named 'addict-程序员宅基地

文章浏览阅读7.2k次,点赞3次,收藏13次。我在conda创建的环境A里面使用pip安装了addict。我的环境是python3.6pip install addict 显示安装成功后,还是显示no module named addict。系统的pip路径:/usr/local/lib/python3.6/dist-packages找到此安装包addict的路径,一般情况下安装的包在系统的pip路径下,conda 的环境A的..._no module named 'addict

基于java中的springboot框架实现学生宿舍管理系统的设计与开发演示【附项目源码+论文说明】_基于springboot的宿舍管理系统论文-程序员宅基地

文章浏览阅读1.2k次,点赞30次,收藏19次。所以各行业,尤其是规模较大的企业和学校等都开始借助互联网和软件工具管理信息,传播信息,共享信息等等,以此可以增强自身实力,提高在同行业当中的竞争能力,并从各种激烈的竞争中获取发展的机会。针对学生宿舍信息管理混乱,出错率高,信息安全性差,劳动强度大,费时费力等问题,经过分析和考虑,在目前的情况下,可以引进一款学生宿舍管理系统这样的现代化管理工具,这个工具就是解决上述问题的最好的解决方案。宿管员管理公寓资产,缴费信息,公共场所清理信息,日常事务信息,审核学生床位安排信息。其具体的操作流程见下图。_基于springboot的宿舍管理系统论文

C++学习 关键字&标识符命名规则_c++命名规范总结-程序员宅基地

文章浏览阅读262次。关键字列表不用记,用多了自然就会了。_c++命名规范总结

2020年12月 Scratch图形化(四级)真题解析#中国电子学会#全国青少年软件编程等级考试-程序员宅基地

文章浏览阅读262次,点赞3次,收藏3次。罗马共和国的恺撒曾经用一种特殊的加密方式和他的将军们联系,他是这样做的:把一个单词里的每一个字母都向后移,比如A向后移3位,变成D,B就变成E,以此类推。外公家的谷仓进了老鼠,小智制作了一只小机器猫在谷仓巡逻驱鼠:下图是谷仓的平面图,每个格子的宽度是30,小猫能够经过每个格子。数学课上老师刚刚讲了正多边形的内角规律,小宇想要制作一个输入边数,就能够画任意正多边形的新积木,请问下面哪段程序能够满足他的要求?点击绿旗,a的值为“海绵宝宝”,b的值为“派大星”,c的值为“章鱼哥”。比如输入:“khoor”,

Vue中鼠标悬停更换图片/文字内容,动态展示/修改某些属性_vue span动态更改文字内容-程序员宅基地

文章浏览阅读3.4k次,点赞5次,收藏16次。Vue中鼠标悬停更换图片/文字内容,动态展示/修改某些属性鼠标悬停时:@mouseenter 鼠标离开时:@mouseleave利用以上来绑定相应方法,例如:<div @click="finance" @mouseleave="changeImageSrc(1, '')" @mouseenter="changeImageSrc(1, 'hover')"> //分别为鼠标悬停时和离开时绑定方法changeImageSrc,并传递参数 <img :src="ci_vue span动态更改文字内容

spring 相关问题收集_at com.fasterxml.jackson.databind.deserializationc-程序员宅基地

文章浏览阅读187次。1.使用resttemplate发送请求,反序列返回的object时报错.代码如下:@Data@AllArgsConstructorpublic class UsageRecordId { private UUID id;}请求如下: UsageRecordId responseEntity = restTemplate.postForObject(HTTP_LOCALHOST + port + urmPath, requestBody,UsageRecor.._at com.fasterxml.jackson.databind.deserializationcontext.handlemissinginstan