Android 拨号报警代码说明

Android 拨号报警代码说明,android,calendar,alarmmanager,Android,Calendar,Alarmmanager,我是android新手,我想在上午11点发出警报,通知我拨号。我在网上找到了一些代码,但不知道其中的一些部分。下面是代码 public void onClick(View arg0) { // TODO Auto-generated method stub Intent myIntent = new Intent(AndroidAlarmService.this, MyAlarmService.class); pendingIntent = PendingIntent.getService(A

我是android新手,我想在上午11点发出警报,通知我拨号。我在网上找到了一些代码,但不知道其中的一些部分。下面是代码

public void onClick(View arg0) {
// TODO Auto-generated method stub

Intent myIntent = new Intent(AndroidAlarmService.this, MyAlarmService.class);
pendingIntent = PendingIntent.getService(AndroidAlarmService.this, 0, myIntent, 0);

        AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);

        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(System.currentTimeMillis());  does
        calendar.add(Calendar.SECOND, 10); 

        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 5*1000, pendingIntent);

Toast.makeText(AndroidAlarmService.this, "Start Alarm", Toast.LENGTH_LONG).show();
}});
有人能解释一下这两行是干什么的吗

 calendar.setTimeInMillis(System.currentTimeMillis());  does
 calendar.add(Calendar.SECOND, 10); 

另外,还可以帮助我如何设置在同一时间通知我的警报,例如在上午11点系统。currentTimeMillis()-从设备获取当前时间

calendar.setTimeInMillis()
-设置当前时间

calendar.add(calendar.SECOND,10)
将当前时间增加10秒


总的来说,您正在获取设备的当前时间并在其中添加10秒。

System.currentTimeMillis()
-从设备获取当前时间

calendar.setTimeInMillis()
-设置当前时间

calendar.add(calendar.SECOND,10)
将当前时间增加10秒


总的来说,您正在获取设备的当前时间并在其中添加10秒。

在需要时调用此函数:

private void setDailyNotification(int ID, int hh, int mm, int ss) {
    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
    Intent alarmIntent = new Intent(Dashboard.this, MyDailyReceiver.class);
    alarmIntent.putExtra("ID", ID);
    Log.d("setDailyNotification", "ID:" + ID);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(
            Dashboard.this, ID, alarmIntent,
            PendingIntent.FLAG_UPDATE_CURRENT);
    mEverydayPendingIntent = pendingIntent;

    Calendar calendar = Calendar.getInstance();
    Calendar now = Calendar.getInstance();
    calendar.set(Calendar.HOUR_OF_DAY, hh);
    calendar.set(Calendar.MINUTE, mm);
    calendar.set(Calendar.SECOND, ss);

    // check whether the time is earlier than current time. If so, set it to
    // tomorrow. Otherwise, all alarms for earlier time will fire

    if (calendar.before(now)) {
        calendar.add(Calendar.DATE, 1);
    }
    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
            calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY,
            mEverydayPendingIntent);
    Log.d("setRepeated", "ID:" + ID);

}
广播接收器:

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
                context);
        mBuilder.setContentTitle("Daily Summery");
        mBuilder.setContentText("Today's Transaction");
        mBuilder.setSmallIcon(R.drawable.app_icon);
        Log.d("tag1234", "In if" + daily_Reminder);
        NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle();
        mBuilder.setStyle(inboxStyle);
        mNotificationMa = (NotificationManager) context
                .getSystemService(Context.NOTIFICATION_SERVICE);
        mNotificationMa.notify(11, mBuilder.build());
调用如下函数:

setDailyNotification(11, 11,00, 00);

在需要时调用此函数:

private void setDailyNotification(int ID, int hh, int mm, int ss) {
    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
    Intent alarmIntent = new Intent(Dashboard.this, MyDailyReceiver.class);
    alarmIntent.putExtra("ID", ID);
    Log.d("setDailyNotification", "ID:" + ID);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(
            Dashboard.this, ID, alarmIntent,
            PendingIntent.FLAG_UPDATE_CURRENT);
    mEverydayPendingIntent = pendingIntent;

    Calendar calendar = Calendar.getInstance();
    Calendar now = Calendar.getInstance();
    calendar.set(Calendar.HOUR_OF_DAY, hh);
    calendar.set(Calendar.MINUTE, mm);
    calendar.set(Calendar.SECOND, ss);

    // check whether the time is earlier than current time. If so, set it to
    // tomorrow. Otherwise, all alarms for earlier time will fire

    if (calendar.before(now)) {
        calendar.add(Calendar.DATE, 1);
    }
    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
            calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY,
            mEverydayPendingIntent);
    Log.d("setRepeated", "ID:" + ID);

}
广播接收器:

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
                context);
        mBuilder.setContentTitle("Daily Summery");
        mBuilder.setContentText("Today's Transaction");
        mBuilder.setSmallIcon(R.drawable.app_icon);
        Log.d("tag1234", "In if" + daily_Reminder);
        NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle();
        mBuilder.setStyle(inboxStyle);
        mNotificationMa = (NotificationManager) context
                .getSystemService(Context.NOTIFICATION_SERVICE);
        mNotificationMa.notify(11, mBuilder.build());
调用如下函数:

setDailyNotification(11, 11,00, 00);

你可以试试这个对我有用

 int interval = 1000 * 60 * 1;
// 1 for minutes ,you can pass 60*24

//And set alarm manager like this

 Intent alarmIntent = new Intent(AlaramManagerActivity.this, NotificationReceiver.class);
        PendingIntent  pendingIntent = PendingIntent.getBroadcast(AlaramManagerActivity.this, RQS_1, alarmIntent, 0);
        AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);


    manager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),interval, pendingIntent);

你可以试试这个对我有用

 int interval = 1000 * 60 * 1;
// 1 for minutes ,you can pass 60*24

//And set alarm manager like this

 Intent alarmIntent = new Intent(AlaramManagerActivity.this, NotificationReceiver.class);
        PendingIntent  pendingIntent = PendingIntent.getBroadcast(AlaramManagerActivity.this, RQS_1, alarmIntent, 0);
        AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);


    manager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),interval, pendingIntent);

这一行表示它得到当前时间,并在其中加上10秒。那么我如何设置报警,通知我在上午11点拨号见我的答案:)接受答案,如果它是为美国工作。这将帮助其他人我已经接受了你的答案。。。谢谢你帮我拔出这条线,这意味着它得到了当前时间,并在其中增加了10秒。那么,我如何设置闹钟,在11点时通知我拨号(见我的答案:)接受答案,如果它是为美国工作。这将帮助其他人我已经接受了你的答案。。。谢谢你帮我