息屏
public void screenOff(Context context, Activity activity){
DevicePolicyManager policyManager = (DevicePolicyManager)activity.getSystemService(Context.DEVICE_POLICY_SERVICE);
ComponentName adminReceiver = new ComponentName(context, ScreenOffAdminReceiver.class);
boolean admin = policyManager.isAdminActive(adminReceiver);
if (admin) {
policyManager.lockNow();
}else{
Toast.makeText(context,"没有设备管理权限",Toast.LENGTH_LONG).show();
}
}
1、创建个DeviceAdminReceiver实例
息屏主要使用的是DevicePolicyManager 类,此外ScreenOffAdminReceiver是一个息屏管理的广播接收器,
该接受器非常重要,系统设置中正是通过该接收器才找到的应用程序,
因此,还需要在**设置-->安全-->设备管理器,激活相对应应用的设备管理器**
public class ScreenOffAdminReceiver extends DeviceAdminReceiver {
@Override
public void onEnabled(Context context, Intent intent) {
Log.d("1234", "设备管理器使用");
}
@Override
public void onDisabled(Context context, Intent intent) {
Log.d("1234", "设备管理器没有使用");
}
}
2、在res下创建目录xml,在xml下创建文件device_admin.xml
<?xml version="1.0" encoding="utf-8"?>
<device-admin xmlns:android="http://schemas.android.com/apk/res/android" >
<uses-policies>
<limit-password />
<watch-login />
<reset-password />
<force-lock />
<wipe-data />
</uses-policies>
</device-admin>
3、在AndoirdManifest.xml注册ScreenOffAdminReceiver
<receiver
android:name=".ScreenOffAdminReceiver"
android:label="@string/app_name"
android:permission="android.permission.BIND_DEVICE_ADMIN" >
<meta-data
android:name="android.app.device_admin"
android:resource="@xml/device_admin" />
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
</intent-filter>
</receiver>
4、在AndoirdManifest.xml添加权限
<uses-permission android:name="android.permission.USES_POLICY_FORCE_LOCK" />
亮屏
public void screenOn(Context context, Activity activity) {
Log.d("1234", "screenOn");
PowerManager mPowerManager = (PowerManager) activity.getSystemService(context.POWER_SERVICE);
PowerManager.WakeLock mWakeLock = mPowerManager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "tag");
mWakeLock.acquire();
mWakeLock.release();
}
<uses-permission android:name="android.permission.WAKE_LOCK" />