Dialog mit PendingIntent anzeigen

Ich arbeite an Kalender-Erinnerungen. Es gibt keine native Kalender-Event-Erinnerung in Android, so dass Benutzer verschiedene Kalender-Apps installieren.

Jetzt können diese Apps bei der Erinnerung an Ereignisse wie bei Erinnerungsbenachrichtigungen unterschiedlich sein. Jetzt möchte ich, dass ich eine Veranstaltung programmgesteuert in diesen Event-Kalender-Apps und auf Zeit erreicht nicht zeigen keine Benachrichtigung eher eine Pop-up-Nachricht wird mit Alarm wie Sound angezeigt werden. Darauf habe ich einen Code von dieser Seite. Seine Arbeit, aber es zeigt Erinnerungen in Form von Benachrichtigungen.

Hier ist Code:

OnReceive

void doReminderWork(Intent intent) { Long rowId = intent.getExtras().getLong(RemindersDbAdapter.KEY_ROWID); NotificationManager mgr = (NotificationManager)getSystemService(NOTIFICATION_SERVICE); Intent notificationIntent = new Intent(this, ReminderEditActivity.class); notificationIntent.putExtra(RemindersDbAdapter.KEY_ROWID, rowId); PendingIntent pi = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_ONE_SHOT); Notification note=new Notification(android.R.drawable.stat_sys_warning, getString(R.string.notify_new_task_message), System.currentTimeMillis()); note.setLatestEventInfo(this, getString(R.string.notify_new_task_title), getString(R.string.notify_new_task_message), pi); note.defaults |= Notification.DEFAULT_SOUND; note.flags |= Notification.FLAG_AUTO_CANCEL; int id = (int)((long)rowId); mgr.notify(id, note); } 

Jetzt möchte ich ein Dialogfenster statt der Benachrichtigung anzeigen, so wie es möglich sein kann, diese Codezeilen zu verwenden, damit diese anstehende Absicht in der Dialogbox verwendet werden soll.

  Intent notificationIntent = new Intent(this, ReminderEditActivity.class); notificationIntent.putExtra(RemindersDbAdapter.KEY_ROWID, rowId); PendingIntent pi = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_ONE_SHOT); 

One Solution collect form web for “Dialog mit PendingIntent anzeigen”

In deiner Empfängerklasse einfach Code, um den Dialog anstelle der Benachrichtigung anzuzeigen.

Klasse, die Dialog zeigt:

 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 Ihrem onReceive , um den Dialog zu zeigen:

 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 basierend auf dem Kommentar:

Um Ton zu spielen, musst du den MediaPlayer wie unten nutzen.

Fügen Sie diese Zeile in die onCreate() der AlarmDialogPopUp Aktivitätsklasse ein, um den Sound abzuspielen.

 MediaPlayer mediaPlayer; //global variable. mediaPlayer = MediaPlayer.create(this,R.raw.alarmsound); 

Fügen Sie die folgenden Zeilen im onClick() des Dialogs hinzu, um den Ton zu stoppen:

 mediaPlayer.stop(); mediaPlayer.release(); 

Hoffe das hilft.

Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.