7
kullanarak iletişim gösterme

Takvim Olayları hatırlatıcısı üzerinde çalışıyorum. Android'de yerel Takvim etkinliği hatırlatıcısı bulunmadığından, kullanıcı farklı takvim uygulamalarını yükler.PendingIntent

Artık bu uygulamalar hatırlatma bildirimleri gibi gösterilmesi gibi olayları hatırlatan farklı olabilir. Şimdi bu olaya programcı olarak bir etkinlik belirlediğimi belirtmek istiyorum ve zaman içinde herhangi bir bildirim gösteremedim, aksine bir alarm sesi gibi bir alarm gösterilecek. O sırada bu siteden bir kod kullanıyorum. Çalışıyor ama bildirimler şeklinde hatırlatmalar gösteriyor.

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); 
} 

Şimdi bu yüzden bu bekleyen niyet kullanılması gerektiğini kod bu satırları kullanmasını nasıl mümkün olabilir yerine bildirimin bir iletişim kutusu göstermek istiyorum: Burada

kodudur diyalog kutusunda. senin Alıcı sınıfına, sadece kodunda

Intent notificationIntent = new Intent(this, ReminderEditActivity.class); 
notificationIntent.putExtra(RemindersDbAdapter.KEY_ROWID, rowId); 

PendingIntent pi = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_ONE_SHOT); 

cevap

15

iletişim yerine Bildirim gösterilecek alır. Iletişimini görüntüler

Sınıf:,

sesi oynatmak için: Yorum dayalı

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: senin onReceive yılında

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; 
    } 
} 

iletişim göstermek için Beni kullanmalısın Aşağıdaki gibi diaPlayer.

Sesi yürütmek için bu satırı AlarmDialogPopUp etkinlik sınıfının onCreate() etkinlik sınıfına ekleyin.

MediaPlayer mediaPlayer; //global variable. 

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

sesi durdurmak için diyalog onClick() aşağıda satırları ekleyin: Bu yardımcı olur

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

Umut.

+0

Yardımlarınız için teşekkürler. İletişim kutusu görüntülendiğinde sesleri göstermek istiyorum – User42590

+0

Cevabımı düzenledim. – Kanth

+0

+ 1'den fazla hak ediyorsun ... Teşekkürler. –