¿Cómo configurar alarma en Android?

Esta pregunta ya está respondida para una solución fácil. Por favor, revise esto

Lo siguiente es mi código. Cualquier cuerpo, por favor dime por qué no funciona. Lo he aprendido de este tutorial . Pero no está funcionando, cualquier ayuda será apreciable.

Mi código es

import java.util.Calendar; import android.app.Activity; import android.app.AlarmManager; import android.app.ListActivity; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ListView; import android.widget.AdapterView.OnItemClickListener; import android.widget.Toast; public class Notify extends Activity { Button btn; /** Called when the activity is first created. */ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.nit); Calendar cal=Calendar.getInstance(); cal.set(Calendar.MONTH,6); cal.set(Calendar.YEAR,2011); cal.set(Calendar.DAY_OF_MONTH,29); cal.set(Calendar.HOUR_OF_DAY,17); cal.set(Calendar.MINUTE,30); //String[] dude=new String[] {"nitin","avi","aman","rahul","pattrick","minkle","manmohan","nitin","nitin"}; //setListAdapter(new ArrayAdapter(this, android.R.layout.simple_expandable_list_item_1,dude)); //getListView().setTextFilterEnabled(true); //String[] dude1=new String[] {"nitin","avi","aman","rahul","pattrick","minkle","manmohan"}; Intent intent = new Intent(this, Mote.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), 1253, intent, PendingIntent.FLAG_UPDATE_CURRENT| Intent.FILL_IN_DATA); AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),pendingIntent ); Toast.makeText(this, "Alarm worked.", Toast.LENGTH_LONG).show(); } } 

y mi clase de receptor es

 import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.widget.Toast; public class Mote extends BroadcastReceiver{ public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub Toast.makeText(context, "Alarm worked.", Toast.LENGTH_LONG).show(); int icon = R.drawable.icon; CharSequence tickerText = "Hello you have to take medicine I am Nitin Sharma"; long when = System.currentTimeMillis(); //Notification notification = new Notification(icon, tickerText,when ); CharSequence contentTitle = "My notification"; CharSequence contentText = "Hello World!"; //notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent); final int NOTIF_ID = 1234; NotificationManager notofManager = (NotificationManager)context. getSystemService(Context.NOTIFICATION_SERVICE); // Notification note = new Notification(R.drawable.face,"NEW ACTIVITY", System.currentTimeMillis()); Intent notificationIntent = new Intent(context, Alset.class); PendingIntent contentIntent = PendingIntent.getActivity(context,0, notificationIntent, 0); Notification notification = new Notification(icon, tickerText,when ); //Notification notification1 = new Notification(R.drawable.icon, "Wake up alarm", System.currentTimeMillis()); notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent); notification.flags = Notification.FLAG_INSISTENT; notification.defaults |= Notification.DEFAULT_SOUND; //notification.setLatestEventInfo(context, "My Activity", "This will runs on button click", contentIntent); notofManager.notify(NOTIF_ID,notification); //PendingIntent contentIntent = PendingIntent.getActivity(context, 0, new Intent(context, MainActivity.class), 0); //notification.setLatestEventInfo(context, "Context Title", "Context text", contentIntent); //notification.flags = Notification.FLAG_INSISTENT; } } 

Creo que quieres configurar la alarma para el 26 de junio y no para el 26 de julio. Si es así, cambie cal.set(Calendar.MONTH,6); a cal.set(Calendar.MONTH,5); porque los meses son basados ​​en cero. Si tiene previsto disparar la alarma el 26 de julio, se espera que la alarma se dispare cuando la fecha sea el 26 de julio de 2011, a las 17:30.

 1.add this in manifest file      2. make a activity public class AlrmActivity extends BaseAcitivity { TimePicker myTimePicker; Button buttonstartSetDialog; TextView textAlarmPrompt; TimePickerDialog timePickerDialog; final static int RQS_1 = 1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_alrm); textAlarmPrompt = (TextView)findViewById(R.id.alarmprompt); buttonstartSetDialog = (Button)findViewById(R.id.startSetDialog); buttonstartSetDialog.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { textAlarmPrompt.setText(""); openTimePickerDialog(false); }}); } private void openTimePickerDialog(boolean is24r){ Calendar calendar = Calendar.getInstance(); timePickerDialog = new TimePickerDialog( AlrmActivity.this, onTimeSetListener, calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), is24r); timePickerDialog.setTitle("Set Alarm Time"); timePickerDialog.show(); } TimePickerDialog.OnTimeSetListener onTimeSetListener = new TimePickerDialog.OnTimeSetListener(){ @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { Calendar calNow = Calendar.getInstance(); Calendar calSet = (Calendar) calNow.clone(); calSet.set(Calendar.HOUR_OF_DAY, hourOfDay); calSet.set(Calendar.MINUTE, minute); calSet.set(Calendar.SECOND, 0); calSet.set(Calendar.MILLISECOND, 0); if(calSet.compareTo(calNow) <= 0){ //Today Set time passed, count to tomorrow calSet.add(Calendar.DATE, 1); } setAlarm(calSet); }}; private void setAlarm(Calendar targetCal){ textAlarmPrompt.setText( "\n\n***\n" + "Alarm is set@ " + targetCal.getTime() + "\n" + "***\n"); Intent intent = new Intent(getBaseContext(), MyAlarmReciever.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), RQS_1, intent, 0); AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); alarmManager.set(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(), pendingIntent); } } 3 . xml file include       4 .make alarm manager class public class MyAlarmReciever extends BroadcastReceiver { Vibrator v; Context ct; String title; @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub ct=context; Log.e("onReceive", "ladskjflsakjdflskjdflskjdfslkjdflasdf"); Toast.makeText(context, "OnReceive alarm test", Toast.LENGTH_SHORT).show(); v=(Vibrator)context.getSystemService(Context.VIBRATOR_SERVICE); v.vibrate(3000); int badgeCount = 1; // ShortcutBadger.applyCount(context, badgeCount); ShortcutBadger.removeCount(context); Bundle bundle = intent.getExtras(); try{ title = intent.getExtras().get("title").toString(); // title = intent.getStringExtra("title"); Toast.makeText(context, title, Toast.LENGTH_LONG).show(); }catch(Exception e){ e.printStackTrace(); } // if (!Utlis.checkNetworkConnection(context)) { // // Notification(context, "Wifi Connection off"); // // } else { Notification(context, "Please pray for this prayer "); // } } public void Notification(Context context, String message) { // Set Notification Title String strtitle = "iPray Prayer Reminder"; // Open NotificationView Class on Notification Click Intent intent = new Intent(context, PrayerForOtherActivity.class); // Send data to NotificationView Class intent.putExtra("title", title); intent.putExtra("text", title); // Open NotificationView.java Activity PendingIntent pIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); // NotificationCompat.Action action = new NotificationCompat.Action.Builder(R.drawable.app_icon, "Previous", pIntent).build(); // Create Notification using NotificationCompat.Builder NotificationCompat.Builder builder = new NotificationCompat.Builder( context) // Set Icon .setSmallIcon(R.drawable.app_icon) // Set Ticker Message .setTicker(message) // Set Title .setContentTitle(context.getString(R.string.app_name)) // Set Text .setContentText(message) // Add an Action Button below Notification // Set PendingIntent into Notification .setContentIntent(pIntent) // Dismiss Notification .setAutoCancel(true); // Create Notification Manager NotificationManager notificationmanager = (NotificationManager) context .getSystemService(Context.NOTIFICATION_SERVICE); // Build Notification with Notification Manager notificationmanager.notify(38, builder.build()); } } 

¿Has configurado el receptor en tu archivo de manifiesto? Algo como esto

  

espero que esto ayude

 @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { Calendar calNow = Calendar.getInstance(); Calendar calSet = (Calendar) calNow.clone(); calSet.set(Calendar.HOUR_OF_DAY, hourOfDay); calSet.set(Calendar.MINUTE, minute); calSet.set(Calendar.SECOND, 0); calSet.set(Calendar.MILLISECOND, 0); if(calSet.compareTo(calNow) <= 0){ //Today Set time passed, count to tomorrow calSet.add(Calendar.DATE, 1); } setAlarm(calSet); }}; private void setAlarm(Calendar targetCal){ textAlarmPrompt.setText( "\n\n***\n" + "Alarm is set@ " + targetCal.getTime() + "\n" + "***\n"); Intent intent = new Intent(getBaseContext(), AlarmReceiver.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), RQS_1, intent, 0); AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); // alarmManager.set(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(), pendingIntent); alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(),AlarmManager.INTERVAL_DAY, pendingIntent); }