权限-放到 AndroidManifest.xml 文件中
<uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
一、闹钟
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组件再开启
}
}
}