打开和关闭手机屏幕方法:


1.关闭屏幕

//设备管理者

private DevicePolicyManager mDevicePolicyManager;

//关屏组件

private ComponentName mCompName;


onCreate()

{

mDevicePolicyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);

// 申请权限

mCompName = new ComponentName(this, YNAdminReceiver.class);

}


//点击按钮关闭屏幕

public void onScreenOff(View view) {

// 判断该组件是否有系统管理员的权限

if (!mDevicePolicyManager.isAdminActive(mCompName)) {//这一句一定要有...

Intent intent = new Intent();

//指定动作

intent.setAction(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);

//指定给那个组件授权

intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mCompName);

startActivity(intent);

} else {

//立即关闭屏幕

mDevicePolicyManager.lockNow();

//                    devicePolicyManager.resetPassword("123321", 0);

Log.i(TAG, "具有权限,将进行锁屏....");

Log.i(TAG, "going to shutdown screen");

}

}


其中,组件mCompName是一个DeviceAdminReceiver:

package com.yn.receivers;

public class YNAdminReceiver extends DeviceAdminReceiver {

}

以上就是关屏的代码部分,剩下还需配置:

//res/xml/yndeviceadmin.xml

<?xml version="1.0" encoding="utf-8"?>


//AndroidMainfest.xml

android:resource="@xml/yndeviceadmin/>

通过以上配置,就可以实现关屏了。



2.打开屏幕(打开屏幕,只需一个wakelock即可)

private PowerManager mPowerManager;

private PowerManager.WakeLock mScreenLock;


onCreate()

{

mPowerManager = ((PowerManager) getSystemService(POWER_SERVICE));

mScreenLock = mPowerManager.newWakeLock(

PowerManager.ACQUIRE_CAUSES_WAKEUP //该flag使能屏幕关闭时,也能点亮屏幕(通常的wakelock只能维持屏幕处于一直开启状态,如果灭屏时,是不会自动点亮的)

| PowerManager.SCREEN_DIM_WAKE_LOCK

| PowerManager.ON_AFTER_RELEASE, "screenOnWakeLock");

}


//点击按钮,5s后获取锁(如果此时屏幕处于关闭状态,5s后获取锁时,会点亮屏幕)

public void onScreenOn(View View) {

new Handler().postDelayed(new Runnable() {

@Override

public void run() {

//isHeld(),判断是否获取锁,false未获取锁

if (!mScreenLock.isHeld()) {

mScreenLock.acquire();

Toast.makeText(MainActivity.this, "acquire", Toast.LENGTH_SHORT).show();

} else {

mScreenLock.release();

Toast.makeText(MainActivity.this, "release", Toast.LENGTH_SHORT).show();


}

}

}, 5000);

}


最后,还需要在AndroidManifest.xml中配置权限


通过以上步骤,就可以实现开启屏幕了。


更多相关文章

  1. android 唤醒屏幕
  2. Android组件的样式
  3. android 技术
  4. Android中OnScrollListener的详解(Listview分批加载用到)
  5. 开发中常用到的几处代码设置
  6. android 随笔提示
  7. Android获取本机信息(随时更新)
  8. Android客户端GPS定位
  9. Android中获取屏幕的宽和高

随机推荐

  1. android标题栏去除和全屏
  2. android studio详细的编译错误提示
  3. Android(安卓)Ble连接,Ble133异常处理,写入
  4. Termux镜像在阿里云镜像站首发上线
  5. vscode的安装与插件安装,md演示与H5标签功
  6. markdown和html的初体验
  7. Markdown知识点+HTML标签对应功能
  8. markdown的常用语法
  9. Markdown语法小结和HTML标签学习小结
  10. 0316html