2013-08-12 50 views
7

Tôi đã tìm kiếm Internet trong một giờ để tìm hiểu cách tạo lời nhắc hoặc báo thức trong ứng dụng Android của tôi. Có ai biết bất kỳ hướng dẫn nào để tạo lời nhắc trong ứng dụng Android của bạn không?Android - Cách tạo lời nhắc/Báo thức trong Ứng dụng

+0

kiểm tra: http://blog.blundell-apps.com/notification-for-a-user-chosen-time/ – Ranjit

+0

Bất kỳ hướng dẫn nào khác thay vì điều này? –

+0

ho đến on..he's hỏi về báo động phổ quát cho một ứng dụng, để nhắc nhở người dùng bằng báo thức và kéo anh ta vào một Hoạt động bên trong ứng dụng ... –

Trả lời

5

Để đánh thức điện thoại và lên lịch báo thức, hãy sử dụng AlarmManager. Sau đó, có Broadcast Receiver nhận được báo động làm bất cứ điều gì bạn muốn (làm cho một tiếng ồn, rung, thêm một thông báo, vv).

+0

có ví dụ trên trang web dành cho nhà phát triển Android không? –

+0

Bạn có biết cách thiết lập tiếng ồn không? –

2

Bạn có thể trực tiếp sử dụng đồng hồ báo thức để đặt báo thức trong ứng dụng. Kiểm tra liên kết dưới đây: http://developer.android.com/reference/android/provider/AlarmClock.html

khác: Hoặc bạn có thể sử dụng AlarmManager, ở đây bạn có thể thấy làm thế nào để cài đặt nó:

private void setAlarm(){ 
    Context context = getApplicationContext(); 

    AlarmManager mgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE); 
    Intent i = new Intent(context, OnAlarmReceiver.class); 
    PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0); 
    myCal = Calendar.getInstance(); 
    myCal.setTimeInMillis(TIME_THE_ALARM_SHOULD_GO_OFF_AS_A_LONG); 
    mgr.set(AlarmManager.RTC_WAKEUP, myCal.getTimeInMillis(), pi); 
    Log.i(myTag, "alarm set for " + myCal.getTime().toLocaleString()); 
    Toast.makeText(getApplicationContext(),"Alarm set for " + myCal.getTime().toLocaleString(), Toast.LENGTH_LONG).show(); 

} 
+0

Cảm ơn, bạn có biết hoe tôi có thể làm cho nó để có một bộ chọn thời gian người dùng sử dụng và nếu họ đặt nó đến 6:00 pm báo động sẽ tắt sau đó? –

2

Tôi không biết chính xác những gì u muốn làm ... . nhưng để phát âm thanh báo động u có thể sử dụng này:

Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM); 
r = RingtoneManager.getRingtone(getApplicationContext(), notification); 
r.play(); 

Ngoài ra nếu u muốn có một thông báo sau đó:

private static final int MY_NOTIFICATION_ID = 1; 
private NotificationManager notificationManager; 
private Notification myNotification; 
private final String myBlog = "abc"; 

buttonSend.setOnClickListener(new Button.OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 
      notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
      myNotification = new Notification(R.drawable.ic_launcher, 
        "Notification!", System.currentTimeMillis()); 
      Context context = getApplicationContext(); 
      String notificationTitle = "Exercise of Notification!"; 
      String notificationText = "hello"; 
      Intent myIntent = new Intent(Intent.ACTION_VIEW, Uri 
        .parse(myBlog)); 
      PendingIntent pendingIntent = PendingIntent.getActivity(
        MainActivity.this, 0, myIntent, 
        Intent.FLAG_ACTIVITY_NEW_TASK); 
      myNotification.defaults |= Notification.DEFAULT_SOUND; 
      myNotification.flags |= Notification.FLAG_AUTO_CANCEL; 
      myNotification.setLatestEventInfo(context, notificationTitle, 
        notificationText, pendingIntent); 
      notificationManager.notify(MY_NOTIFICATION_ID, myNotification); 

    } 
    }); 
+0

Cảm ơn bạn có biết làm thế nào để ngăn chặn các alarmmanager dừng lại khi tôi đóng ứng dụng –

+0

tất cả các u cần làm là phù hợp với thời gian thiết bị với thời gian u thiết lập cho báo động. Và nó sẽ bắt đầu và một thông báo cũng sẽ được đẩy đến màn hình chính của bạn! –

+0

để ngăn báo thức đóng cửa u có thể đặt một nút có nhãn thoát và sử dụng mục đích Intent = new Intent (Intent.ACTION_MAIN); intent.addCategory (Intent.CATEGORY_HOME); intent.setFlags (Intent.FLAG_ACTIVITY_NEW_TASK); startActivity (intent); kết thúc(); điều này sẽ làm là khi nhấp vào nút, nó sẽ đưa bạn đến màn hình chính mà không cần chấm dứt ứng dụng ur ... vì vậy điều này có nghĩa là báo thức ur vẫn đang chạy ở chế độ nền. –

Các vấn đề liên quan