티스토리 뷰
리시버 안에
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);
이런식으로 설정한다.
알람매니저에 대한 설명글은 다음번에 쓰겠습니다.
'Web&App > 안드로이드' 카테고리의 다른 글
안드로이드 밑에 버튼 없애기 (소프트키 없애기) : 몰입모드 (0) | 2020.05.18 |
---|---|
안드로이드 코드실행 지연, 늦추기 (원하는 타이밍에 실행) (0) | 2020.05.15 |
안드로이드 스튜디오에서 핸드폰 해상도 dpi 확인 및 변경 1dp 계산 (0) | 2020.04.28 |
안드로이드 Room 사용 코드랩 ( SQLite 를 업그레이드? ) (0) | 2020.04.02 |
exoplayer double tap 이용하여 앞으로, 뒤로 가기 (exo_ffwd, exo_rew) (0) | 2020.03.25 |
댓글