息屏后亮屏并显示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

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

  1. android app锁屏后定位,如何能让app在锁屏后还继续发送定位请求继续运行程序

    现在我的定位版本还不能打包.用基座版本测试的. 发现 1.wifi 休眠是不影响的(我的小米2 可以设置 始终保持连接) 2.屏幕一旦休眠(不是锁屏) 应用程序 是 受干扰的.(时间间隔不等) 但基本 ...

  2. 锁定计算机后如何不黑屏,电脑锁屏后开不了机怎么办 电脑锁屏后开不了机解决方法【详解】...

    1.长时间不用显示器,显示器自动转入休眠节能模式,黑屏. 电脑锁屏搞定方式:以win7系统为例. (1)右击桌面空白处,在菜单中选择"个性化",打开个性化设置对话框 (2)点击上图 ...

  3. 计算机屏保后无法再次启动,电脑锁屏后开不了机怎么办 电脑锁屏后开不了机解决方法【详解】...

    1.长时间不用显示器,显示器自动转入休眠节能模式,黑屏. 电脑锁屏搞定方式:以win7系统为例. (1)右击桌面空白处,在菜单中选择"个性化",打开个性化设置对话框 (2)点击上图 ...

  4. Android小知识10则(上)(2018.8重编版)

    Android小知识10则(下) 目录 前言 横竖屏锁定 不同分辨率的图标 将字符串写在资源文件中 为AlertDialog设置点击监听 ProgressDialog了解一下 最后 前言 Androi ...

  5. Deepin——使用小知识记录

    使用小知识记录 一.命令使用 1.deepin-xxxx命令 2.编辑命令edit系列 二.系统设置 1.开机延时设置 2.系统切换 3.时尚模式和高效模式 4.普通模式和特效模式 5.启动器(菜单栏 ...

  6. Android小知识10则(下)

    Android小知识10则(上) github传送门 注: 在目录中点击可以跳转到具体代码页 目录 Chronometer和CountDownTimer计时器 Chronometer的使用 Count ...

  7. C++/Qt 小知识记录2

    工作中遇到的一些小问题,总结的小知识记录:C++/Qt 小知识 RGBA/ARGB转16进制颜色 int与RGB互转 int转Hex值 VS2015代码粗略统计 QTableWidget设置 列宽设置 ...

  8. Android 小知识

    1.判断sd卡是否存在 boolean sdCardExist = Environment.getExternalStorageState().equals(android.os.Environmen ...

  9. android小知识(1)

    1.Android名称的由来. 大家可能不知道,Android一词的本义原指"机器人",它也是谷歌于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操 ...

最新文章

  1. 二叉树-二叉树的最小深度(递归法)
  2. tensorflow2:tf.app.run()
  3. C#最基本的小说爬虫
  4. typescript 怎么表示当前时间减一个月_TypeScript 入门知识点总结
  5. oracle jdbctype null,Oracle数据库之springboot 项目mybatis plus 设置 jdbcTypeForNull
  6. win10更改mac地址
  7. 物以稀为贵-网管狂妄的原因
  8. 原理 rpm_图文详解,微型直流电机的工作原理
  9. 一键查询网站服务器归属地,一文搞定3种批量查询手机归属地的方法
  10. 指数型组织:打造独角兽公司的11个最强属性
  11. 三维点云处理(5)——Clustering
  12. 使用Hourglass网络来理解人体姿态
  13. Minecraft 从入门到入坑(边玩游戏边学编程)
  14. 如何成为有效学习的高手 学习笔记
  15. 洁净室环境在线式监测实时读取颗粒尘埃粒子计数器
  16. bitset c++ 用法
  17. matlab提取数据的一部分,如何从matlab中的数据中提取数据?
  18. 灰度共生矩阵-python
  19. 《良乔说软件》第一回 问君情深深几许?我的眼里只有你
  20. iTunesMetadata.plist文件里的内容

热门文章

  1. 转一个PS图像处理技巧大全,很实用!
  2. css分块代码,30 Seconds of CSS代码块解读(视觉篇)
  3. 东方博宜OJ——1007 - 【入门】统计大写英文字母的个数
  4. 隐藏CAD图层内容,2种方法搞定
  5. 电脑下载工具哪个软件好 电脑下载工具去哪下载
  6. 基于react的影院购票应用
  7. 官网下载git缓慢问题
  8. 用for循环写520个我喜欢你
  9. Version 28 (intended for Android Pie and below) is the last version of the legacy support library
  10. Java工具使用(导读)