android屏幕关闭,在Android上关闭屏幕
对我来说,这些方法不起作用。所以我使用其他场景(不是微不足道)来关闭我的屏幕。
Android有2个标志,负责清醒:
显示 - >屏幕TimeOut
应用程序 - >开发 - > 充电时保持清醒复选框。
我使用了以下流程:
首先保存您之前的配置,例如屏幕超时为1分钟,并 在充电时保持清醒状态。
之后,我取消选中充电时保持清醒并将屏幕超时设置为最短时间。
我注册广播接收器服务从屏幕关闭的Android获取事件。
当我关闭屏幕上的事件时,我将先前的配置设置为默认值:屏幕超时为1分钟并且 在检查充电时保持清醒状态。
取消注册接收器
15秒后 设备睡觉
这是代码片段:
广播接收器
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
/**
* Catch Screen On/Off
* */
public class BroadcastReceiverScreenListener extends BroadcastReceiver{
private BroadCastListenerCallBackItf mBroadCastListenerCallBack = null;
public BroadcastReceiverScreenListener(
BroadCastListenerCallBackItf broadCastListenerCallBack) {
this.mBroadCastListenerCallBack = broadCastListenerCallBack;
}
@Override
public void onReceive(Context arg0, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
mBroadCastListenerCallBack.broadCastListenerCallBack__ScreenOff_onResponse();
}
}
}
用作回调的接口
public interface BroadCastListenerCallBackItf {
public void broadCastListenerCallBack__ScreenOff_onResponse();
}
主类2种方法:
....
AndroidSynchronize mSync = new AndroidSynchronize();
....
public void turnScreenOff(int wait){
IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
BroadCastListenerCallBackItf broadCastListenerCallBack = this;
BroadcastReceiver mReceiver = new BroadcastReceiverScreenListener(broadCastListenerCallBack);
m_context.registerReceiver(mReceiver, filter);
//set Development --> disable STAY_ON_WHILE_PLUGGED_IN
Settings.System.putInt(
m_context.getContentResolver(),
Settings.System.STAY_ON_WHILE_PLUGGED_IN,
0 );
// take current screen off time
int defTimeOut = Settings.System.getInt(m_context.getContentResolver(),
Settings.System.SCREEN_OFF_TIMEOUT, 3000);
// set 15 sec
Settings.System.putInt(m_context.getContentResolver(),
Settings.System.SCREEN_OFF_TIMEOUT, 15000);
// wait 200 sec till get response from BroadcastReceiver on Screen Off
mSync.doWait(wait*1000);
// set previous settings
Settings.System.putInt(m_context.getContentResolver(),
Settings.System.SCREEN_OFF_TIMEOUT, defTimeOut);
// switch back previous state
Settings.System.putInt(
m_context.getContentResolver(),
Settings.System.STAY_ON_WHILE_PLUGGED_IN,
BatteryManager.BATTERY_PLUGGED_USB);
m_context.unregisterReceiver(mReceiver);
}
public void broadCastListenerCallBack__ScreenOff_onResponse() {
mSync.doNotify();
}
....
AndroidSynchronize类
public class AndroidSynchronize {
public void doWait(long l){
synchronized(this){
try {
this.wait(l);
} catch(InterruptedException e) {
}
}
}
public void doNotify() {
synchronized(this) {
this.notify();
}
}
public void doWait() {
synchronized(this){
try {
this.wait();
} catch(InterruptedException e) {
}
}
}
}
[编辑]
您需要注册权限:
android.permission.WRITE_SETTINGS
android屏幕关闭,在Android上关闭屏幕相关推荐
- java 解锁window屏幕,如何检测iPhone上的屏幕锁定/解锁事件?
看看这个,我想检测锁定/解锁事件,我通过达尔文通知解决了它 . 您可以通过 "com.apple.springboard.lockcomplete" 检测设备被锁定时的事件 . / ...
- VR眼镜连接android设备,如何将VR眼镜的屏幕投影到计算机或电视上?
文字/挪威森林 尽管VR眼镜的目的是让玩家沉浸在虚拟世界中,体验从不同角度观看视频,玩游戏或成为人生的胜利者.但是总有一些玩家希望与他人共享虚拟世界的图像,因此,我现在要提到的是"投影&qu ...
- android编辑框显示,android – 如何在屏幕上显示文本编辑框?
您的问题最简单的解决方案是在您主要(肖像修复的)活动中启动的单独的对话框主题的活动中显示您的EditText. EditText Activity不应该将其方向固定,因此它会沿着您滑出键盘时的期望旋转 ...
- 在Android的 设置-显示 中增加控制屏幕旋转方向的选项
在Android的 设置->显示 中增加控制屏幕旋转方向的选项 参考博文 实现目标 效果局限 代码实现 配置资源文件 界面搭建 功能实现 默认值修改 其他情况 结语 参考博文 Android-x ...
- Android锁屏状态下点亮屏幕并弹窗提醒
类似于手机锁屏状态下QQ来消息然后点亮屏幕并弹窗,如图. 相信QQ的这个功能大家都是很熟悉的了,下面就开始讲具体的实现步骤. 一.新建一个Activity并在OnCreate中添加四个标识 @Over ...
- android softkeyboard,如何以编程方式关闭Android Soft KeyBoard?
如何以编程方式关闭Android Soft KeyBoard? 我目前正在使用以下代码显示软键盘 InputMethodManager imm = (InputMethodManager) getSy ...
- 创建支持多种屏幕尺寸的Android应用
负责人:冰凝 原文链接:http://developer.android.com/guide/practices/screens_support.html Android涉及各种各样的支持不同屏幕尺寸 ...
- Android 与 Chrome OS 中针对大屏幕设备的更新
随着智能终端硬件的不断革新,大尺寸设备的种类越来越丰富,比如手机.折叠屏设备.平板电脑.ChromeBook.外接显示器的 ChromeBox 和集成屏幕的 Chromebase 等.Google 团 ...
- android-支持多种屏幕[声明适用于 Android 3.2 的平板电脑布局] 七
对于第一代运行 Android 3.0 的平板电脑,声明平板电脑 的正确方式是将它们放在有 xlarge 配置限定符的目录(例如 res/layout-xlarge/)中.为适应其他类型的平板电脑和屏 ...
最新文章
- 2020各省份大学排名出炉!
- 继续C#开发or转做产品
- 记录vmware的bug failed to install hcmon deriver
- click事件在什么时候出发_剖析setTimeout和click点击事件的触发顺序
- linux命令之有关网络的操作命令
- java shell文件_Java 文件读写示例1
- 练习:将从表读出来的时间戳除以1000(java读时间戳会多出3个000)用jackson包 实现...
- 运用二维数组打印杨辉三角(找规律题)
- HTTP报文-请求方式
- 干货|内网渗透之端口转发端口映射
- AD13中对工程进行编译出现的error
- f5计算机中代表什么,ctrl f5是什么意思
- java记忆翻牌_html5记忆翻牌游戏
- iPhone 开发常用工具
- CenterNet2:CenterNet再升级,原作者提出基于概率解释的两阶段目标检测
- Unity——点击按钮或屏幕响应事件
- 前端基础之CSS标签样式
- 沙特认证_所有的沙特机器人去哪儿了
- 【免费】三款超火的文字转语音工具推荐,爆款短视频配音软件必备
- R3LIVE代码详解(四)
热门文章
- Android 监听USB设备插拔事件
- 7.exchange2013实战操作之收件人配置
- JSON Schame的介绍及基本使用
- 数控加工中心与数控雕刻机的区别
- php许愿墙参考文献,许愿墙论文,关于我家的许愿墙相关参考文献资料-免费论文范文...
- 2022北京眼睛健康展,北京眼镜展,北京近视矫正展,眼视光展
- 智慧养老解决方案配合服务守护老人
- Contour Knowledge Transfer for Salient Object Detection
- ubuntu20.04,安装向日葵客户端报错问题
- IDEA中代码无故报红解决方法