android 监听锁屏 权限,Android中监听锁屏变化和防止锁屏
Android app中可能存在某些可视化耗时操作,需要防止锁屏。
一、监听锁屏
添加权限
首先来看如何监听锁屏,使用BroadcastReceivercaset来监听
1.锁屏监听
public class ScreenBroadcastReceiver extends BroadcastReceiver {
private static final String TAG = "ScreenBroadcastReceiver";
@Override
public void onReceive(Context context, Intent intent) {
Log.i(context.getClass().getSimpleName(), intent.getAction());
if(Intent.ACTION_USER_PRESENT.equals(intent.getAction())){ // 解锁时
}else if(Intent.ACTION_SCREEN_OFF.equals(intent.getAction())){ // 锁屏时
}
}
}
从上得知,注册锁屏状态监听广播需要2个Action,
Intent.ACTION_USER_PRESENT 和 Intent.ACTION_SCREEN_OFF.
二、阻止锁屏
方法一,修改window的flag
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
方式二,使用SDK 电源管理器PowerManger与KeyguardManager工具
//onResume 中启用
wakeLock = ((PowerManager) getSystemService(POWER_SERVICE))
.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK
| PowerManager.ON_AFTER_RELEASE, TAG);
wakeLock.acquire();
//onPause 中禁用
if (wakeLock != null) {
wakeLock.release();
}
此方法需要添加如下权限
方法三,修改系统settings(不推荐,开启后屏幕一直保持开启,还得手动修改settings)
ContentResolver mContentResolver = getContentResolver();
android.provider.Settings.Secure.putInt(mContentResolver, android.provider.Settings.Secure.LOCK_PATTERN_ENABLED,false);
//但注意要加权限AndroidManifest.xml文件中加入,因此,系统需要root才行
//
//还要特别注意的是要加入 android:sharedUserId="android.uid.system",但有一个问题,
//如果加入了sharedUserId后就不能使用eclipse编译了,一定要手动通过 mm -B进行编译,然后把apk install到模拟器或设备中
方法四、配置keepScreenOn
在某些android高版本的View的中,有这样的属性(强烈推荐),可以进行配置
android:keepScreenOn="true"
try doing it
3.参考文章
android 监听锁屏 权限,Android中监听锁屏变化和防止锁屏相关推荐
- android自动申请悬浮窗权限,Android 悬浮窗--无需权限
image.png 无需一切权限,不受各种国产ROM限制,默认可以显示的应用内悬浮窗. 应用内显示,无需申请任何权限 应用内显示,所有机型都可以默认显示悬浮窗,无需引导用户做更多设置 支持拖拽 超出屏 ...
- android动态申请悬浮框权限,Android中代码动态判断是否开启悬浮窗权限和申请悬浮窗权限...
原因 在某些机型上居然后出现permission denied for window type 2038错误: E/AndroidRuntime: FATAL EXCEPTION: main Proc ...
- oracle监听启动无权限,Linux中Oracle启动侦听报错TNS:permission denied的解决方法
前言 最近在开发环境 oracle 启动侦听的时候,出现了 TNS:permission denied 的问题,通过网上和咨询朋友,最终找到了解决方案,现在共享出来给有需要的朋友. 错误描述 [ora ...
- android动态申请悬浮框权限,Android创建悬浮窗的完整步骤
在Android中想要创建悬浮窗分为三步 1.申请权限 2.使用服务启动悬浮窗 3.设置悬浮窗参数并添加进WindowManager 下面话不多说了,来一起看看详细的实现过程 申请权限 首先需要申请悬 ...
- android动态申请悬浮框权限,Android动态权限申请工具(包括悬浮窗)
为了保证APP正常运行,动态权限申请是android比较常用的功能,由于每次都需要做申请.等待返回还有拒绝反馈等操作,比较麻烦,所以集成了一个比较简单的动态权限申请库 集成方法: Step 1. Ad ...
- Android个推需要的权限,Android 推送实现-接入个推(GTPush)
自己使用过的推送服务:极光推送(Jpush).友盟推送.个推.阿里推送,其他的目前还没用用过,但使用起来应该都是比较类似的吧! 本文将简单介绍下这次个推推送的接入流程,及相关的注意事项(个推开通厂商通 ...
- android 获取已安装列表权限,Android 如何完整的获取到用户已安装应用列表
接到产品经理的预研需求,说希望获取用户已安装应用列表.这个问题应该不难,只要是要把相关的知识点整理和验证一下. 对于获取用户已安装应用列表,我个人是很熟悉的,因为我的华为手机上,手机管家天天会在通知栏 ...
- android百度地图sdk定位权限,Android:使用百度地图SDK实现定位:下载SDK、申请密钥、动态获得Android权限...
最近想实现一个打卡的功能,想到可以利用百度地图的SDK.网上有很多关于百度地图SDK定位.地图功能应用的demo,这部分倒不是很困难.但网上很多博客写的内容一般都着重于代码部分,很多下载配置和编译器设 ...
- android代码开启悬浮窗权限,Android 悬浮窗权限校验(示例代码)
悬浮窗权限: 权限检验和请求: //检查是否已经授予权限,大于6.0的系统适用,小于6.0系统默认打开,无需理会 if (Build.VERSION.SDK_INT >= Build.VERSI ...
最新文章
- 逻辑回归 + GBDT模型融合实战!
- 01《软件需求分析教程》
- C#,JAVA各版本之Thread.join()详解
- SQL 附加数据库时出现 无法打开物理文件错误
- Java上传文件到MongoDB GirdFS
- Error starting userland proxy: listen tcp 0.0.0.0:8080: bind: address already in use.
- mysql无法与外部健形成约束_MySQL Rails:错误:150“外键约束不正确”
- CRM 4.0得到用户个人信息
- java使用Post方式发送https请求的方法,直接可以用
- micropython 驱动oled0.91_[MicroPython]STM32F407开发板驱动OLED液晶屏
- 基于 Flink 的实时数仓生产实践
- QT 基础类结构图及核心库
- My Fifteenth Page - 快乐数 - By Nicolas
- WPE1.3C的详细使用教程
- Docker常用配置管理操作札记整理
- 老程序员吐槽,今天面试了一个被培训班坑了的学生
- sql2000的安装以及sp4的升级
- Axure教程(B站宋老师)
- h5广告与html5,那些刷爆朋友圈儿的H5广告大揭秘
- IBC协议之 ics-024-host-requirements