1

hiii

I am new to to android.I have created a calender where I am able to set alarm. But the problem is I am unable to receive any message i.e if i set an alarm of 2.30pm,A message should appear that alarm received.I am not receiving this message ..Please suggest..

Please help Here is the code...

alarm.java

package com.example.notificationalarm;

import java.util.Calendar;

import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.TimePickerDialog;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.TimePicker;

public class Alarm extends ActionBarActivity 
{
    TimePicker myTimePicker;
     Button buttonstartSetDialog;
     TextView textAlarmPrompt;


     TimePickerDialog timePickerDialog;

     final static int RQS_1 = 1;

        /** Called when the activity is first created. */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.alarm);
        textAlarmPrompt=(TextView)findViewById(R.id.alarm);
         buttonstartSetDialog = (Button)findViewById(R.id.startSetDialog);
         buttonstartSetDialog.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) 
            {
                   textAlarmPrompt.setText("");
                    openTimePickerDialog(false);

            }
        });

    }

    private void openTimePickerDialog(boolean is24r){
          Calendar calendar = Calendar.getInstance();

          timePickerDialog = new TimePickerDialog(
                  Alarm.this, 
            onTimeSetListener, 
            calendar.get(Calendar.HOUR_OF_DAY), 
            calendar.get(Calendar.MINUTE), 
            is24r);
          timePickerDialog.setTitle("Set Alarm Time");  

          timePickerDialog.show();

         }

            OnTimeSetListener onTimeSetListener= new 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(), 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);

         }

        }

AlarmReceiver .java

public class AlarmReceiver extends BroadcastReceiver
{

    @Override
    public void onReceive(Context arg0, Intent arg1) 
    {
        Toast.makeText(arg0, "Alarm received!", Toast.LENGTH_LONG).show();

    }

}
user3567857
  • 183
  • 10

1 Answers1

0

How have you declared your AlarmManager in the Manifest?

When I look on the code I cannot find any bug, so let's try this in your manifest.xml

        <receiver 
        android:name="your.package.AlarmReceiver"/>

This might help

  • Okay, I have the same code and there are two small changes. First, I used getApplicationContext() instead of getBaseContext() Second, as last parameter of PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), RQS_1, intent, 0); I used PendingIntent.FLAG_UPDATE_CURRENT – Martin Macheiner Aug 07 '14 at 10:07
  • I am getting error in this line PendingIntent.FLAG_UPDATE_CURRENT – user3567857 Aug 07 '14 at 10:40
  • Intent intent = new Intent(getApplicationContext(), AlarmReceiver.class); int pendingIntent = PendingIntent.FLAG_UPDATE_CURRENT; AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); alarmManager.set(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(), pendingIntent); – user3567857 Aug 08 '14 at 09:25
  • This is what i did..but i am getting error in this like change PendingIntent to type PendingIntent.and when i am doing that its not accepting – user3567857 Aug 08 '14 at 09:27
  • No not this way! I meant try this: PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), RQS_1, intent, PendingIntent.FLAG_UPDATE_CURRENT); – Martin Macheiner Aug 08 '14 at 09:42