2013-01-31 159 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天設置。

用戶可以編輯報警,刪除報警,並立即刪除所有報警。

我應該怎麼做改變的代碼,我應該增加更多。請建議。

謝謝。

回答