定时关机pad

public class PowerUtil {
    private static final SimpleDateFormat FORMAT = new SimpleDateFormat("HHmm");
    //调用执行方法
    public static   void setShutDownAt(String timeValue, Context context) {
        Calendar settingCalendar = Calendar.getInstance();
        try {
            settingCalendar.setTime(FORMAT.parse(timeValue));
        } catch (ParseException e) {
            Log.e("setShutDownAt", e.getLocalizedMessage());
            e.printStackTrace();
            return;
        }
        Calendar currentCalendar = Calendar.getInstance();
        settingCalendar.set(Calendar.YEAR, currentCalendar.get(Calendar.YEAR));
        settingCalendar.set(Calendar.MONTH, currentCalendar.get(Calendar.MONTH));
        settingCalendar.set(Calendar.DAY_OF_MONTH, currentCalendar.get(Calendar.DAY_OF_MONTH));
        if (settingCalendar.before(currentCalendar)) {
            settingCalendar.add(Calendar.DAY_OF_MONTH, 1);
        }
//        int year = settingCalendar.get(Calendar.YEAR);
//        int month = settingCalendar.get(Calendar.MONTH);
//        int day = settingCalendar.get(Calendar.DAY_OF_MONTH);
//        int hour = settingCalendar.get(Calendar.HOUR_OF_DAY);
//        int minute = settingCalendar.get(Calendar.MINUTE);
//        int seconds = settingCalendar.get(Calendar.SECOND);

        Log.i("定时关机时间", "最终设置关机时间=" + settingCalendar.getTime());

        Intent intent = new Intent(context, ActionBroadCast.class);
        PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 0);
        AlarmManager am = (AlarmManager) context.getSystemService(ALARM_SERVICE);
        am.set(AlarmManager.RTC_WAKEUP, settingCalendar.getTimeInMillis(), pi);
    }
}

//广播类

public class ActionBroadCast extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
//        String action = "com.android.internal.intent.action.REQUEST_SHUTDOWN";
//        if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.N) {
//            action = "android.intent.action.ACTION_REQUEST_SHUTDOWN";
//        }
//        Intent intent1 = new Intent(action);
//        intent1.putExtra("android.intent.extra.KEY_CONFIRM", false);
//        intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//        context.startActivity(intent1);
        FileLogUtil.fileLog("ActionBroadCast","-------定时关机启动-----");
        shutDown();
    }

    private void shutDown() {
        try {
            //Process proc =Runtime.getRuntime().exec(new String[]{"su","-c","shutdown"});  //关机
//            Process proc = Runtime.getRuntime().exec(new String[]{"su", "-c", "reboot -p"});  //关机
            Process proc = Runtime.getRuntime().exec(new String[]{"reboot" ,"-p"});  //关机
            proc.waitFor();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

 

//AndroidManifest 注册静态广播

<receiver android:name=".receiver.ActionBroadCast">//ActionBroadCast路径
    <intent-filter>
        <action android:name="android.intent.action.ALARM_CLOCK" />
    </intent-filter>
</receiver>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值