/**
* 关机
*/
public static void shutdown() {
try {
Process process = Runtime.getRuntime().exec("su");
DataOutputStream out = new DataOutputStream(
process.getOutputStream());
out.writeBytes("reboot -p\n");
out.writeBytes("exit\n");
out.flush();
} catch (IOException e) {
e.printStackTrace();
LogHelper.saveExceptionStackInfo(e);
}
}
/**
* 重启
*/
public static void reboot(){
String cmd = "su -c reboot";
try {
Runtime.getRuntime().exec(cmd);
} catch (IOException e) {
LogHelper.saveExceptionStackInfo(e);
}
}
/**
* 锁屏
* @param ctx
*/
public static void lockScreen(Context ctx) {
// 获取设备管理服务
DevicePolicyManager policyManager = (DevicePolicyManager) ctx.getSystemService(Context.DEVICE_POLICY_SERVICE);
// AdminReceiver 继承自 DeviceAdminReceiver
ComponentName componentName = new ComponentName(ctx, AdminReceiver.class);
boolean active = policyManager.isAdminActive(componentName);
if (!active) {// 若无权限
activeManage(ctx,componentName);// 去获得权限
// policyManager.lockNow();//并锁屏
}
if (active) {
policyManager.lockNow();// 直接锁屏
}
}
private static void activeManage(Context ctx,ComponentName componentName) {
// 启动设备管理(隐式Intent) - 在AndroidManifest.xml中设定相应过滤器
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
// 权限列表
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, componentName);
// 描述(additional explanation)
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
"------ 其他描述 ------");
((Activity)ctx).startActivityForResult(intent, 0);
}
// 移除设备权限
public static void unActiveManage(Activity ctx) {
// 获取设备管理服务
DevicePolicyManager policyManager = (DevicePolicyManager) ctx.getSystemService(Context.DEVICE_POLICY_SERVICE);
// AdminReceiver 继承自 DeviceAdminReceiver
ComponentName componentName = new ComponentName(ctx, AdminReceiver.class);
boolean active = policyManager.isAdminActive(componentName);
if (active) {
policyManager.removeActiveAdmin(componentName);
}
}
电源模块管理
最新推荐文章于 2024-04-23 19:11:47 发布