I am working on Calender Events reminder . There is no native Calender events reminder in Android so user install different calender apps.
Now these apps can be diff
In your Receiver class, just code to get the dialog to display instead of Notification.
Class that displays Dialog:
public class AlarmDialogPopUp extends Activity
{
private int m_alarmId;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// Get the alarm ID from the intent extra data
Intent intent = getIntent();
Bundle extras = intent.getExtras();
if (extras != null) {
m_alarmId = extras.getInt("AlarmID", -1);
} else {
m_alarmId = -1;
}
// Show the popup dialog
showDialog(0);
}
@Override
protected Dialog onCreateDialog(int id)
{
super.onCreateDialog(id);
// Build the dialog
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("ALARM REMINDER");
alert.setMessage("Its time for the alarm ");
alert.setCancelable(false);
alert.setPositiveButton("Dismiss", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
AlarmDialogPopUp.this.finish();
}
});
// Create and return the dialog
AlertDialog dlg = alert.create();
return dlg;
}
}
In your onReceive
to show dialog :
public void onReceive(Context context, Intent intent)
{
// Launch the alarm popup dialog
Intent alarmIntent = new Intent("android.intent.action.MAIN");
alarmIntent.setClass(context, AlarmDialogPopUp .class);
alarmIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// Pass on the alarm ID as extra data
alarmIntent.putExtra("AlarmID", intent.getIntExtra("AlarmID", -1));
// Start the popup activity
context.startActivity(alarmIntent);
}
EDIT based on the comment:
To play sound, you need to make use of MediaPlayer like below.
Add this line in the onCreate()
of AlarmDialogPopUp
activity class to play the sound.
MediaPlayer mediaPlayer; //global variable.
mediaPlayer = MediaPlayer.create(this,R.raw.alarmsound);
Add the below lines in the onClick()
of the dialog to stop the sound:
mediaPlayer.stop();
mediaPlayer.release();
Hope this helps.