Android 小知识记录-----息屏后亮屏并显示Activity在锁屏页面之上
息屏后亮屏并显示Activity在锁屏页面之上
1. 加权限
<uses-permission android:name="android.permission.WAKE_LOCK" />
2. 加代码
- 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)}
- 亮屏
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()}
- 解锁并显示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
Android 小知识记录-----息屏后亮屏并显示Activity在锁屏页面之上相关推荐
- android app锁屏后定位,如何能让app在锁屏后还继续发送定位请求继续运行程序
现在我的定位版本还不能打包.用基座版本测试的. 发现 1.wifi 休眠是不影响的(我的小米2 可以设置 始终保持连接) 2.屏幕一旦休眠(不是锁屏) 应用程序 是 受干扰的.(时间间隔不等) 但基本 ...
- 锁定计算机后如何不黑屏,电脑锁屏后开不了机怎么办 电脑锁屏后开不了机解决方法【详解】...
1.长时间不用显示器,显示器自动转入休眠节能模式,黑屏. 电脑锁屏搞定方式:以win7系统为例. (1)右击桌面空白处,在菜单中选择"个性化",打开个性化设置对话框 (2)点击上图 ...
- 计算机屏保后无法再次启动,电脑锁屏后开不了机怎么办 电脑锁屏后开不了机解决方法【详解】...
1.长时间不用显示器,显示器自动转入休眠节能模式,黑屏. 电脑锁屏搞定方式:以win7系统为例. (1)右击桌面空白处,在菜单中选择"个性化",打开个性化设置对话框 (2)点击上图 ...
- Android小知识10则(上)(2018.8重编版)
Android小知识10则(下) 目录 前言 横竖屏锁定 不同分辨率的图标 将字符串写在资源文件中 为AlertDialog设置点击监听 ProgressDialog了解一下 最后 前言 Androi ...
- Deepin——使用小知识记录
使用小知识记录 一.命令使用 1.deepin-xxxx命令 2.编辑命令edit系列 二.系统设置 1.开机延时设置 2.系统切换 3.时尚模式和高效模式 4.普通模式和特效模式 5.启动器(菜单栏 ...
- Android小知识10则(下)
Android小知识10则(上) github传送门 注: 在目录中点击可以跳转到具体代码页 目录 Chronometer和CountDownTimer计时器 Chronometer的使用 Count ...
- C++/Qt 小知识记录2
工作中遇到的一些小问题,总结的小知识记录:C++/Qt 小知识 RGBA/ARGB转16进制颜色 int与RGB互转 int转Hex值 VS2015代码粗略统计 QTableWidget设置 列宽设置 ...
- Android 小知识
1.判断sd卡是否存在 boolean sdCardExist = Environment.getExternalStorageState().equals(android.os.Environmen ...
- android小知识(1)
1.Android名称的由来. 大家可能不知道,Android一词的本义原指"机器人",它也是谷歌于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操 ...
最新文章
- 二叉树-二叉树的最小深度(递归法)
- tensorflow2:tf.app.run()
- C#最基本的小说爬虫
- typescript 怎么表示当前时间减一个月_TypeScript 入门知识点总结
- oracle jdbctype null,Oracle数据库之springboot 项目mybatis plus 设置 jdbcTypeForNull
- win10更改mac地址
- 物以稀为贵-网管狂妄的原因
- 原理 rpm_图文详解,微型直流电机的工作原理
- 一键查询网站服务器归属地,一文搞定3种批量查询手机归属地的方法
- 指数型组织:打造独角兽公司的11个最强属性
- 三维点云处理(5)——Clustering
- 使用Hourglass网络来理解人体姿态
- Minecraft 从入门到入坑(边玩游戏边学编程)
- 如何成为有效学习的高手 学习笔记
- 洁净室环境在线式监测实时读取颗粒尘埃粒子计数器
- bitset c++ 用法
- matlab提取数据的一部分,如何从matlab中的数据中提取数据?
- 灰度共生矩阵-python
- 《良乔说软件》第一回 问君情深深几许?我的眼里只有你
- iTunesMetadata.plist文件里的内容
热门文章
- 转一个PS图像处理技巧大全,很实用!
- css分块代码,30 Seconds of CSS代码块解读(视觉篇)
- 东方博宜OJ——1007 - 【入门】统计大写英文字母的个数
- 隐藏CAD图层内容,2种方法搞定
- 电脑下载工具哪个软件好 电脑下载工具去哪下载
- 基于react的影院购票应用
- 官网下载git缓慢问题
- 用for循环写520个我喜欢你
- Version 28 (intended for Android Pie and below) is the last version of the legacy support library
- Java工具使用(导读)