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


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 9.0 (P版本) SystemServer中的服务配置se linux权限
  5. 【按键】灭屏后瞬间按返回键,可以点亮屏幕
  6. android 获得屏幕宽度 高度
  7. 组件居中显示 安卓
  8. System Permissions—— android系统权限

随机推荐

  1. ANDROID的MANIFEST.XML文件字段解析
  2. Android系列教程之七:EditText使用详解-包
  3. Android高手进阶教程(九)之----Android(
  4. android生命周期()
  5. 最简单的走马灯实现
  6. Android(安卓)虚拟摇杆,多种模式回调,返回
  7. android背景选择器selector用法汇总
  8. Android的CTS测试
  9. Android开发秘籍学习笔记(一)
  10. android:windowSoftInputMode属性的使用