Android 小知识记录-----息屏后亮屏并显示Activity在锁屏页面之上

news/2024/11/8 13:56:03/

息屏后亮屏并显示Activity在锁屏页面之上

1. 加权限

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

2. 加代码

  1. SDK 大于等于27
override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)// 需要该Activiy在锁屏状态下显示时,显示在锁屏之上,不加在这里第一次显示不起作用if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {setShowWhenLocked(true)}setContentView(R.layout.activity_main)}
  1. 亮屏
val powerManager = p0?.getSystemService(Context.POWER_SERVICE) as PowerManagervar isScreenOn = when {Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH -> {powerManager.isInteractive}else -> {powerManager.isScreenOn}}if (!isScreenOn) {val wakeLock = powerManager.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP or PowerManager.SCREEN_BRIGHT_WAKE_LOCK,"wakeupScreen") as PowerManager.WakeLockwakeLock.acquire(1000)wakeLock.release()}
  1. 解锁并显示activity的代码
                 val km = p0.getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager// 判断是否锁屏val isLocked = km.isKeyguardLocked// 判断是否需要密码,图形,pin解锁val isLockedWithPassword = km.isKeyguardSecureval activity = p0 as Activityif (isLocked) {Log.i(TAG, "it is locked")if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {activity.setShowWhenLocked(true)Log.i(TAG, "setShowWhenLocked")if (isLockedWithPassword.not()) {km.requestDismissKeyguard(activity, null)Log.i(TAG, "requestDismissKeyguard")}} else if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.O) {if (isLockedWithPassword) {//WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED,表示可以显示在锁屏之上 activity.window?.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED)Log.i(TAG, "addFlags: FLAG_SHOW_WHEN_LOCKED")} else {if (Build.VERSION.SDK_INT == Build.VERSION_CODES.O) {activity.window?.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED)km.requestDismissKeyguard(activity, null)Log.i(TAG, "requestDismissKeyguard")} else {//  WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD  表示锁屏设置的是上滑解锁,它可以帮助我们上滑并显示activityactivity.window?.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD)Log.i(TAG, "addFlags: FLAG_DISMISS_KEYGUARD")}}}

视频DEMO

https://download.csdn.net/download/zcpHappy/85837139


http://www.ppmy.cn/news/484354.html

相关文章

基于Android实现的锁屏软件APP

源码及论文下载&#xff1a;http://www.byamd.xyz/tag/android/一、概述 1.1 选题背景 首先现在各种安卓的游戏和APP充斥应用市场&#xff0c;但是创意还是有的。 首先&#xff0c;锁屏软件虽然不是一个创新点&#xff0c;我也承认好多人都做过了&#xff0c;也有做的很绚丽…

关于解锁和锁屏

解锁、锁屏界面状态改变、锁屏&#xff08;开机锁屏、时间超时锁屏、按power键锁屏&#xff09; 一、解锁。以划动解锁&#xff08;LockScreen.java&#xff09;为例 1、划动解锁触发其控件监听方法onTrigger&#xff0c;onTrigger方法再调用对象mCallback.goToUnlockScree…

好玩的linux命令--cmatrix炫酷屏保软件

好玩的linux命令--cmatrix炫酷屏保软件 链接:https://pan.baidu.com/s/1837d9HjUg6Ek8RxOa9ohAg 密码:vuzh tar xvf cmatrix-1.2a.tar.gz cd cmatrix-1.2a yum install ncurses-devel ./configure && make && make install make 安装失败&#xff0c;可以运…

Java做的锁屏小软件

BJ锁屏(JLocker) 【功能】 锁屏软件&#xff0c;输入密码&#xff0c;回车&#xff0c;确认密码&#xff0c;回车即可锁屏。 【JLocker最新版】 说明&#xff1a;版本号1.6。 地址&#xff1a;http://good.gd/2020806.htm 【JLocker历史版本】 |——Version1.4及以前&am…

Android O版本power按键锁屏亮屏流程

今天记录下跟踪的Android O版本&#xff0c;power键按下流程&#xff0c;包括关机&#xff0c;锁屏&#xff0c;亮屏流程&#xff0c;没有太多新的扩展&#xff0c;只是做了源码流程的记录分析&#xff0c;若有异议&#xff0c;欢迎提出&#xff0c;下面开始 ##power按键传递 对…

prisma 结合 mongodb 查询地理空间坐标,实现 “附近的人”功能

前言&#xff1a;我们创建一个集合&#xff0c;添加测试数据&#xff0c;并执行 mongodb 的地理空间查询&#xff0c;返回需要的数据。 1、通过schema.prisma, 创建 store 集合 2、通过 prisma/client &#xff0c;插入 几条测试数据 // 构造测试数据createList: async () >…

如何修改Linux的锁屏时间,调整Kali Linux的锁屏时间

调整Kali Linux的锁屏时间 锁屏是保护隐私的一种重要机制。当用户不操作电脑一段时间后,系统会进入锁屏状态。用户需要输入口令,才能重新进入系统。避免因为操作人员离开电脑后,被其他人员利用现有帐号权限对电脑进行操作。Kali Linux的锁屏是和黑屏功能是关联的。默认设置是…

js实现一个简单的锁屏功能

//********* 锁屏DIV *************************** function LockScreen(tag,title,width,height,url) { if (tag) //锁屏 { var lockdiv document.getElementById("lockscreen"); if (lockdiv!null) { lockdiv.style…