首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义Android报警提醒

自定义Android报警提醒
EN

Stack Overflow用户
提问于 2013-03-26 11:40:51
回答 1查看 5.5K关注 0票数 4

我正在制作医药提醒应用程序,在那个应用程序中,我已经包括了添加一个关于医生预约的提示功能。在我的应用程序中,允许用户设置自己的日期和时间,并在该日期和时间触发警报。请帮帮我..。我参考了这条线索..。How to set Alarm in Android?

EN

回答 1

Stack Overflow用户

发布于 2013-03-26 11:46:55

使用以下步骤。

用于日历中的提醒:

1.设立一个活动,作为:

代码语言:javascript
复制
// get calendar
Calendar cal = Calendar.getInstance();     
Uri EVENTS_URI = Uri.parse(getCalendarUriBase(this) + "events");
ContentResolver cr = getContentResolver();

// event insert
ContentValues values = new ContentValues();
values.put("calendar_id", 1);
values.put("title", "Reminder Title");
values.put("allDay", 0);
values.put("dtstart", cal.getTimeInMillis() + 11*60*1000); // event starts at 11     minutes from now
values.put("dtend", cal.getTimeInMillis()+60*60*1000); // ends 60 minutes from now
values.put("description", "Reminder description");
values.put("visibility", 0);
values.put("hasAlarm", 1);
Uri event = cr.insert(EVENTS_URI, values);

2.然后创建提醒并将其设置为:

代码语言:javascript
复制
// reminder insert
Uri REMINDERS_URI = Uri.parse(getCalendarUriBase(this) + "reminders");
values = new ContentValues();
values.put( "event_id", Long.parseLong(event.getLastPathSegment()));
values.put( "method", 1 );
values.put( "minutes", 10 );
cr.insert( REMINDERS_URI, values );

3.将权限设置为:

代码语言:javascript
复制
<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />

仅用于报警的

1.设立广播接收机,作为:

代码语言:javascript
复制
public class AlarmReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        try {
            Bundle bundle = intent.getExtras();
            String message = bundle.getString("alarm_message");
            Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
        } catch (Exception e) {
            Toast.makeText(context, "There was an error somewhere, but we still received an alarm", Toast.LENGTH_SHORT).show();
            e.printStackTrace();
        }
    }
}

2.设定许可:

代码语言:javascript
复制
<receiver  android:process=":remote" android:name="AlarmReceiver"></receiver>

3.设立活动:

代码语言:javascript
复制
// get a Calendar object with current time
Calendar cal = Calendar.getInstance();
// add 5 minutes to the calendar object
cal.add(Calendar.MINUTE, 5);
Intent intent = new Intent(ctx, AlarmReceiver.class);
intent.putExtra("alarm_message", "O'Doyle Rules!");
// In reality, you would want to have a static variable for the request code instead of 192837
PendingIntent sender = PendingIntent.getBroadcast(this, 192837, intent,    PendingIntent.FLAG_UPDATE_CURRENT);

// Get the AlarmManager service
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), sender);

4.广播接收机的活动:

代码语言:javascript
复制
@Override
public void onReceive(Context context, Intent intent) {
    try {
        Bundle bundle = intent.getExtras();
        String message = bundle.getString("alarm_message");

        Intent newIntent = new Intent(context, AlarmActivity.class);
        newIntent.putExtra("alarm_message", message);
        newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(newIntent);
    } catch (Exception e) {
        Toast.makeText(context, "There was an error somewhere, but we still received an alarm", Toast.LENGTH_SHORT).show();
        e.printStackTrace();
    }
}

根据需要修改代码。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15636193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档