2013-03-07 3 views
0

Я пробовал много раз, но ничего.Невозможно установить будильник с помощью AlarmManager

Это код класса, который должен установить будильник, но ничего не происходит в указанный час и дату.

package com.beppe.reminder; 

import java.util.Calendar; 
import java.util.Date; 
import android.app.AlarmManager; 
import android.app.PendingIntent; 
import android.content.Context; 
import android.content.Intent; 
import android.provider.AlarmClock; 

public class ReminderManager { 

private Context mCtx; 
private AlarmManager alarm; 



public ReminderManager(Context Ctx){ 
    mCtx=Ctx; 

} 


public void setAlarm(Date d, long taskID){ 

    alarm=(AlarmManager) mCtx.getSystemService(Context.ALARM_SERVICE); 

    Intent intent=new Intent(mCtx, OnAlarm.class); 
    intent.putExtra(DBAdapter.KEY_ROWID, taskID); 

    PendingIntent pi=PendingIntent.getBroadcast(mCtx, 0, intent, PendingIntent.FLAG_ONE_SHOT); 

    Calendar cal = Calendar.getInstance(); 
    cal.setTimeInMillis(System.currentTimeMillis()); 
    cal.clear(); 
    cal.set(d.getYear()+1900,d.getMonth(),d.getDate(),d.getHours(),d.getMinutes()); 


    alarm.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pi); 
} 

} 

Линия с d.getYear()+1900 потому, что класс Дата возврата год от 1900.

Я попытался дату и время печати, и они, кажется, правильно (месяц правильно ноль на основе целое).

Если сигнал тревоги установлен правильно, где я мог его видеть?

+0

Может быть, это поможет вам http://stackoverflow.com/questions/6001548/how-to-set-phones-alarm-from-program-code-in-android –

ответ

2
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);     

       //---get current date and time--- 
       Calendar calendar = Calendar.getInstance();  

       //---sets the time for the alarm to trigger--- 
       calendar.set(Calendar.YEAR, datePicker.getYear()); 
       calendar.set(Calendar.MONTH, datePicker.getMonth()); 
       calendar.set(Calendar.DAY_OF_MONTH, datePicker.getDayOfMonth());     
       calendar.set(Calendar.HOUR_OF_DAY, timePicker.getCurrentHour()); 
       calendar.set(Calendar.MINUTE, timePicker.getCurrentMinute()); 
       calendar.set(Calendar.SECOND, 0); 

       //---PendingIntent to launch activity when the alarm triggers---      
       Intent i = new Intent("net.learn2develop.DisplayNotification"); 

       //---assign an ID of 1--- 
       i.putExtra("NotifID", 1);         

       PendingIntent displayIntent = PendingIntent.getActivity(
        getBaseContext(), 0, i, 0);    

       //---sets the alarm to trigger--- 
       alarmManager.set(AlarmManager.RTC_WAKEUP, 
        calendar.getTimeInMillis(), displayIntent); 
      } 

См. Эту ссылку. http://mobiforge.com/developing/story/displaying-status-bar-notifications-android

+0

но код это похоже на мое. Какая ошибка? – user2135833

+0

Не могли бы вы сослаться на эту ссылку ... –

Смежные вопросы