Я пробовал много раз, но ничего.Невозможно установить будильник с помощью 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.
Я попытался дату и время печати, и они, кажется, правильно (месяц правильно ноль на основе целое).
Если сигнал тревоги установлен правильно, где я мог его видеть?
Может быть, это поможет вам http://stackoverflow.com/questions/6001548/how-to-set-phones-alarm-from-program-code-in-android –