当前位置:   article > 正文

移动应用开发实验四AlarmManager实现闹钟提醒_alarmanager 实现闹钟功能

alarmanager 实现闹钟功能
  • 实验目的和要求

在Android Studio中,通过AlarmManager实现闹钟提醒。

点击“SET ALARM”后,采用Toast方式提示用于设定的闹钟成功,并包含设定的闹钟启用时间。

当闹钟生效时,采用AlertDialog实现闹钟题型,并通过AlertDialog支持的setItems方式[1],提示用户选择三种后续动作:(1)自动设定在当前时间的1分钟生效的闹钟,(2)自动设定在当前时间的2分钟生效的闹钟,(3)不再设定新的闹钟。

当用户选定“(1)自动设定在当前时间的1分钟生效的闹钟”或“(2)自动设定在当前时间的2分钟生效的闹钟”后,闹钟生效后,仍按照以上方式提供给用户上述三种选择。

当用户选定“(3)不再设定新的闹钟”后,通过AlertDialog提供的setMessage方式,询问用户是否确认不再设定新的闹钟并提供“是”和“否”两个操作按钮,如果用户选择“否”,则跳转到使用AlarmManager设定闹钟的页面,如果用户选择“是”,则通过Notification方式为用户提供通知[1],在用户下拉点击通知消息后,跳转到第三次实验的主页面,并要求该页面能够正确完成第三次实验的各项要求。

 

  • 实验环境

Win11 Androidstudio

 
  • 实验内容与过程(实验题目和代码)

创建一个新的Java类,命名为"AlarmReceiver",并将以下代码添加到该类中:

  1. import android.content.BroadcastReceiver;
  2. import android.content.Context;
  3. import android.content.Intent;
  4. public class AlarmReceiver extends BroadcastReceiver {
  5.     @Override
  6.     public void onReceive(Context context, Intent intent) {
  7.         // 在这里添加你要执行的操作,比如播放音乐或者弹出通知等
  8.     }
  9. }

MainActivity.java类中添加以下代码:

  1. import android.app.AlarmManager;
  2. import android.app.PendingIntent;
  3. import android.content.Context;
  4. import android.content.Intent;
  5. import android.os.Bundle;
  6. import android.view.View;
  7. import android.widget.Button;
  8. import android.widget.TimePicker;
  9. import android.widget.Toast;
  10. import java.util.Calendar;
  11. public class MainActivity extends AppCompatActivity {
  12.     private TimePickertimePicker;
  13.     private Button btnSetAlarm;
  14.     private AlarmManageralarmManager;
  15.     private PendingIntentpendingIntent;
  16.     @Override
  17.     protected void onCreate(Bundle savedInstanceState) {
  18. super.onCreate(savedInstanceState);
  19. setContentView(R.layout.activity_main);
  20. timePicker = findViewById(R.id.timePicker);
  21. btnSetAlarm = findViewById(R.id.btnSetAlarm);
  22. alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
  23.         Intent intent = new Intent(MainActivity.this, AlarmReceiver.class);
  24. pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, intent, 0);
  25. btnSetAlarm.setOnClickListener(new View.OnClickListener() {
  26.             @Override
  27.             public void onClick(View view) {
  28.                 Calendar calendar = Calendar.getInstance();
  29. calendar.set(Calendar.HOUR_OF_DAY, timePicker.getCurrentHour());
  30. calendar.set(Calendar.MINUTE, timePicker.getCurrentMinute());
  31.                 long alarmTime = calendar.getTimeInMillis();
  32. alarmManager.set(AlarmManager.RTC_WAKEUP, alarmTime, pendingIntent);
  33. Toast.makeText(MainActivity.this, "闹钟设置成功!", Toast.LENGTH_SHORT).show();
  34.             }
  35.         });
  36.     }
  37. }

最后,在AndroidManifest.xml文件中添加以下权限:

<uses-permission android:name="android.permission.VIBRATE" />

注册AlarmReceiver类:

<receiver android:name=".AlarmReceiver" />
  • 实验结果与分析(实验结果截图)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/675801
推荐阅读
相关标签
  

闽ICP备14008679号