Android 代码设置本地闹钟、定时器

权限-放到 AndroidManifest.xml 文件中

一、闹钟

createAlarm("提醒消息",10,11);

/*闹钟*/
public void createAlarm(String message, int hour, int minutes)
    {
        Intent intent = new Intent(AlarmClock.ACTION_SET_ALARM)
                .putExtra(AlarmClock.EXTRA_MESSAGE, message) //用于标识闹钟的自定义消息
                .putExtra(AlarmClock.EXTRA_HOUR, hour)  //闹钟的小时
                .putExtra(AlarmClock.EXTRA_MINUTES, minutes);   //闹钟的分钟
        if (intent.resolveActivity(getPackageManager()) != null)
        {
            startActivity(intent);    //确认存在对应Activity组件再开启
        }
    }

二、定时器

startTimer("标签",30);

/*定时器*/
    public void startTimer(String message, int seconds)
    {
        Intent intent = new Intent(AlarmClock.ACTION_SET_TIMER)
                .putExtra(AlarmClock.EXTRA_MESSAGE, message)  //用于标识定时器的自定义消息
                .putExtra(AlarmClock.EXTRA_LENGTH, seconds)  //以秒为单位的定时器定时长度-秒
                .putExtra(AlarmClock.EXTRA_SKIP_UI, true);  //一个布尔型值,用于指定响应定时器的应用在设置定时器时是否应跳过其 UI。
        //若为 true,则应用应跳过任何确认 UI,直接启动指定的定时器。
        if (intent.resolveActivity(getPackageManager()) != null)
        {
            startActivity(intent);  //确认存在对应Activity组件再开启
        }
    }

全部代码

import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.provider.AlarmClock;
import androidx.annotation.Nullable;

public class MainActivity  extends AppCompatActivity  {

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        createAlarm("123",10,11);
        startTimer("456",30);

    }

    /*闹钟*/
    public void createAlarm(String message, int hour, int minutes)
    {
        Intent intent = new Intent(AlarmClock.ACTION_SET_ALARM)
                .putExtra(AlarmClock.EXTRA_MESSAGE, message) //用于标识闹钟的自定义消息
                .putExtra(AlarmClock.EXTRA_HOUR, hour)  //闹钟的小时
                .putExtra(AlarmClock.EXTRA_MINUTES, minutes);   //闹钟的分钟
        if (intent.resolveActivity(getPackageManager()) != null)
        {
            startActivity(intent);    //确认存在对应Activity组件再开启
        }
    }
    /*定时器*/
    public void startTimer(String message, int seconds)
    {
        Intent intent = new Intent(AlarmClock.ACTION_SET_TIMER)
                .putExtra(AlarmClock.EXTRA_MESSAGE, message)  //用于标识定时器的自定义消息
                .putExtra(AlarmClock.EXTRA_LENGTH, seconds)  //以秒为单位的定时器定时长度-秒
                .putExtra(AlarmClock.EXTRA_SKIP_UI, true);  //一个布尔型值,用于指定响应定时器的应用在设置定时器时是否应跳过其 UI。
        //若为 true,则应用应跳过任何确认 UI,直接启动指定的定时器。
        if (intent.resolveActivity(getPackageManager()) != null)
        {
            startActivity(intent);  //确认存在对应Activity组件再开启
        }
    }
}

你可能感兴趣的:(android)