티스토리 뷰

 

 

 

리시버 안에

MainReceiver.java

 

MediaPlayer = mediaPlayer;
public MainReceiver(Context context,PushHandler pushHandler,PushPreference pushPreference) {



}


@SuppressLint("MissingPermission")
@Override
public void onReceive(Context context, Intent intent) {


if(intent.getAction().equals("example")
{
Uri alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
mediaPlayer = MediaPlayer.create(mContext,alert);

mediaPlayer.start();

showDialog();
}


}


void showDialog() {
AlertDialog.Builder ab = new AlertDialog.Builder(ContentActivity.contentContext);
ab.setTitle("Title");
ab.setMessage("알람 해제");
ab.setCancelable(false);

ab.setPositiveButton("알람 해제", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
mediaPlayer.stop(); // 이 방식은 미디어를 멈추는것이고
mediaPlayer.release(); // 이 방식은 메모리에서 해체시키는 방법이다.
}
});

ab.setNegativeButton("취소", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {

}
});

ab.show();
}

 

이렇게 브로드캐스트를 받았을 때 알람을 설정해 주면 된다.

 

mediaplayer를 통해 소리를 재생하였습니다.

 

소리는 Uri alert 에 현재 핸드폰에 설정된 벨소리를 가져오게 만든 후 그 소리를 mediaplayer가 재생해줍니다.

 

AlertDialog를 이용하여 알람을 해제할 수 있는 창을 띄어줍니다.

 

 

 

 

 

 

브로드 캐스트를 보내는 시간 설정은 아래와 같이 알람매니저를 설정하여

 

activity 또는 자신이 원하는 곳에

 

long date = calendar.getTimeInMillis();
Log.d("timevalue",new SimpleDateFormat("yyyy년MM월dd일 HH시mm분").format(date));
Intent alarmIntent = new Intent();//== 암시적인텐트             //명시적 인텐트 암시적 인텐트
alarmIntent.setAction("example");
PendingIntent alarmPending = PendingIntent.getBroadcast(context,0, alarmIntent,PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(ALARM_SERVICE);
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),alarmPending);

 

이런식으로 설정한다.

 

알람매니저에 대한 설명글은 다음번에 쓰겠습니다.

 

 

댓글
최근에 올라온 글
최근에 달린 댓글
250x250