2013-01-31 2 views
0

알람 기능이 처음입니다. 나는 경보 장치를 개발 중이다. 나는 알람을 설정할 수 있습니다. 알람이 울리면 사용자 정의 노트가 팝업 창에 나타납니다.반복 알람 설정

Main.java

import java.util.Calendar; 

import android.app.Activity; 
import android.app.AlarmManager; 
import android.app.PendingIntent; 
import android.content.Intent; 
import android.os.Bundle; 

public class AlarmMainActivity extends Activity {  
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     Calendar cal = Calendar.getInstance(); 
     cal.set(Calendar.MONTH, 0); 
     cal.set(Calendar.YEAR, 2013); 
     cal.set(Calendar.DAY_OF_MONTH, 31); 
     cal.set(Calendar.HOUR_OF_DAY, 17); 
     cal.set(Calendar.MINUTE, 40); 

     //Create a new PendingIntent and add it to the AlarmManager 
     Intent intent = new Intent(this, AlarmReceiverActivity.class); 
     PendingIntent pendingIntent = PendingIntent.getActivity(this,12345, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
     AlarmManager am = (AlarmManager)getSystemService(Activity.ALARM_SERVICE); 
     am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),pendingIntent); 
     finish(); 
    } 
} 

AlarmRecieverActivity.java

import java.io.IOException; 

import android.app.Activity; 
import android.app.AlertDialog; 
import android.content.Context; 
import android.content.DialogInterface; 
import android.media.AudioManager; 
import android.media.MediaPlayer; 
import android.media.RingtoneManager; 
import android.net.Uri; 
import android.os.Bundle; 

public class AlarmReceiverActivity extends Activity { 
    private MediaPlayer mMediaPlayer; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.alarm); 

     callStop(); 

     playSound(this, getAlarmUri());   
    } 

    private void playSound(Context context, Uri alert) { 
     mMediaPlayer = new MediaPlayer(); 
     try { 
      mMediaPlayer.setDataSource(context, alert); 
      final AudioManager audioManager = (AudioManager) context 
       .getSystemService(Context.AUDIO_SERVICE); 
      if (audioManager.getStreamVolume(AudioManager.STREAM_ALARM) != 0) { 
       mMediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM); 
       mMediaPlayer.prepare(); 
       mMediaPlayer.start(); 
      } 
     } catch (IOException e) { 
      System.out.println("OOPS"); 
     } 
    } 

    //Get an alarm sound. Try for an alarm. If none set, try notification, 
    //Otherwise, ringtone. 
    private Uri getAlarmUri() { 
     Uri alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM); 
     if (alert == null) { 
      alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
      if (alert == null) { 
      alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE); 
      } 
     } 
     return alert; 
    } 

    private void callStop(){ 
     AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this); 
    alertDialogBuilder.setTitle("Medicine Alert"); 
    alertDialogBuilder.setMessage("ABC"); 
    alertDialogBuilder.setNeutralButton("Ok", new DialogInterface.OnClickListener() {     
       public void onClick(DialogInterface dialog, int which) { 
      mMediaPlayer.stop(); 
        finish(); 
     } //end onClick. 
    }); // end alertDialog.setButton. 
    alertDialogBuilder.show(); 
    } 
} 

그리고 요구 사항이다 : 내 코드는 지금은 여러 알람을 설정합니다.

매개 변수가 전달 될 때 다음 5 일에서 6 일 동안 경고가 설정되어야합니다.

사용자는 알람을 편집하고, 알람을 삭제하고, 모든 알람을 한 번에 삭제할 수 있습니다.

코드에서 변경해야 할 사항과 추가해야 할 내용은 무엇입니까? 제발 제안 해주세요.

감사합니다.

답변

0

AlarmManager.setRepeating을 살펴보십시오.

+1

도움 주셔서 감사합니다. 그러나 나는 3 또는 4 또는 5 일 동안 반복 경보를 설정하는 방법을 얻지 못하고있다. 그리고 설정된 경보를 편집하는 방법. –