android studio调用系统的闹钟

一.首先设计“设置闹钟”的界面
创建activity_set_alarm.xml文件,如下:

	<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:orientation="vertical">


        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="请输入闹钟时间(如:'1时2分',应在时钟处输入'01',分钟处输入'02'"/>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="时钟"/>
                <EditText
                    android:id="@+id/hour"
                    android:layout_width="80dp"
                    android:layout_height="wrap_content"
                    android:textStyle="italic"
                    android:inputType="number"/>
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="分钟"/>
                <EditText
                    android:id="@+id/minute"
                    android:layout_width="80dp"
                    android:layout_height="wrap_content"
                    android:textStyle="italic"
                    android:inputType="number"/>
            </LinearLayout>
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="请设置闹钟标题"/>
                <EditText
                    android:id="@+id/alarmTitle"
                    android:minWidth="180dp"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textStyle="italic"/>
            </LinearLayout>

        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">
            <CheckBox
                android:id="@+id/Monday"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="星期一"/>
            <CheckBox
                android:id="@+id/Tuesday"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="星期二"/>
            <CheckBox
                android:id="@+id/Wednesday"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="星期三"/>
            <CheckBox
                android:id="@+id/Thursday"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="星期四"/>
            <CheckBox
                android:id="@+id/Friday"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="星期五"/>
            <CheckBox
                android:id="@+id/Saturday"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="星期六"/>
            <CheckBox
                android:id="@+id/Sunday"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="星期天"/>
        </LinearLayout>

        <Button
            android:id="@+id/StartAlarm"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="开启闹钟"/>

</LinearLayout>

在这里插入图片描述
然后写该xml文件对应的Activity文件:SetAlarmActivity.java文件,如下:

public class SetAlarmActivity extends AppCompatActivity {
    private ArrayList<Integer> Time=new ArrayList<Integer>();
    private CheckBox Monday;
    private CheckBox Tuesday;
    private CheckBox Wednesday;
    private CheckBox Thursday;
    private CheckBox Friday;
    private CheckBox Saturday;
    private CheckBox Sunday;
    private EditText hour;
    private EditText minute;
    private EditText alarmTitle;
    private Button StartAlarm;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_set_alarm);

        init();//初始化
        //监听开始闹钟按钮
        StartAlarm.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                setAlarmTime();
            }
        });
    }

    /**
     * 初始化控件
     */
    private void init(){
        Monday=findViewById(R.id.Monday);
        Tuesday=findViewById(R.id.Tuesday);
        Wednesday=findViewById(R.id.Wednesday);
        Thursday=findViewById(R.id.Thursday);
        Friday=findViewById(R.id.Friday);
        Saturday=findViewById(R.id.Saturday);
        Sunday=findViewById(R.id.Sunday);

        hour=findViewById(R.id.hour);
        minute=findViewById(R.id.minute);
        alarmTitle=findViewById(R.id.alarmTitle);

        StartAlarm=findViewById(R.id.StartAlarm);
    }

    /**
     * 设置闹钟时间
     */
    private void setAlarmTime(){
        Intent intent=new Intent();
        intent.setAction("android.intent.action.SET_ALARM");
        //获取用户输入的时间及标题
        int Hour=Integer.parseInt(hour.getText().toString());
        int Minute= Integer.parseInt(minute.getText().toString());
        String Title=alarmTitle.getText().toString();
        
        if(Monday.isChecked())
            Time.add(Calendar.MONDAY);
        if(Tuesday.isChecked())
            Time.add(Calendar.TUESDAY);
        if(Wednesday.isChecked())
            Time.add(Calendar.WEDNESDAY);
        if(Thursday.isChecked())
            Time.add(Calendar.THURSDAY);
        if(Friday.isChecked())
            Time.add(Calendar.FRIDAY);
        if(Saturday.isChecked())
            Time.add(Calendar.SATURDAY);
        if(Sunday.isChecked())
            Time.add(Calendar.SUNDAY);
        
        //设置闹钟时间
        intent.putExtra(AlarmClock.EXTRA_DAYS,Time);//设置闹钟日子
        intent.putExtra(AlarmClock.EXTRA_HOUR,Hour);//设置时钟
        intent.putExtra(AlarmClock.EXTRA_MINUTES,Minute);//设置分钟
        intent.putExtra(AlarmClock.EXTRA_MESSAGE,Title);//设置闹钟标题
        intent.putExtra(AlarmClock.EXTRA_SKIP_UI,true);//跳过UI

        //判断手机上是否有用于接收该intent的应用
        if(intent.resolveActivity(getPackageManager())!=null){
            startActivity(intent);
        }
        else{
            Toast.makeText(SetAlarmActivity.this,"没有合适的应用设置闹钟",Toast.LENGTH_SHORT);
        }
    }
}

当你系统自带的闹钟应用有下面的intent-filter时才可以启动闹钟。

<intent-filter>
            <action android:name="android.intent.action.SET_ALARM" />
            <category android:name="android.intent.category.DEFAULT" />
            <!-- 由于对应的intent是隐式的,故必须加上category:"android.intent.category.DEFAULT" -->
</intent-filter>

如果你的手机上没有这样的应用,可以自行编写。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值