안드로이드 11) Alarm Effect

밍나·2022년 1월 17일
0

Android

목록 보기
11/36

Vibration & Beep

1. Vibration
(1) 퍼미션 필요

<uses-permission android:name="android.permission.VIBRATE"/>

(2) Vibrator 시스템 서비스 이용

val vibrator = if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.S){
    val vibratorManager = this.getSystemService(Context, VIBRATOR_MANAGER_SERVICE) as VibratorManager
    vibratorManager.defaultVibrator
} else{
    getSystemService(VIBRATOR_SERVICE) as Vibrator
}
  • API Level 31 이전 버전에서는 Vibrator라는 시스템 서비스 이용
  • API Level 31 버전부터는 VibratorManager라는 시스템 서비스 이용

(3) vibrate 함수 이용

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
    vibrator.vibrate(VibrationEffect.createOneShot(500, VibrationEffect.DEFAULT_AMPLITUDE))
} else{
    vibrator.vibrate(500)
}
  • API Level 26 이전 버전
    • open fun vibrate(milliseconds: Long): Unit
    • open fun vibrate(pattern: LongArray!, repeat: Int): Unit → 진동 반복 시
  • API Level 26 버전부터
    • open fun vibrate(vibe: VibrationEffect!): Unit
  • VibrationEffect 객체 획득 방법
    • open static fun createOneShot(milliseconds: Long, amplitude: Int): VibrationEffect!
    • open static fun createWaveform(timings: LongArray!, amplitudes: IntArray!, repeat: Int): VibrationEffect!

2. Beep

// 타입 지정
val notification: Uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)
// 매개변수로 타입을 지정한 변수를 넣어 줌
val ringtone = RingtoneManger.getRingtone(applicationContext, notification)
ringtone.play()
  • 시스템에 등록된 알림음 플레이
  • 시스템에는 알림(NOTIFICATION), 알람(ALARM), 링톤(RINGTONE) 등의 음이 준비되어 있다
val player: MediaPlayer = MediaPlayer.create(this, R.raw.fallbackring)
player.start()
  • 임의의 음원을 비프음으로 사용한다면 res>raw 폴더 이용

Toast, Dialog

1. Toast

Toast.makeText(this, "종료하려면 한번 더 누르세요", Toast.LENGTH_SHORT).show()
  • 화면 하단에 잠깐 보였다가 사라지는 문자열
  • open static fun makeText(context: Context!, text: CharSequence!, duration: Int): Toast!
  • open static fun makeText(context: Context!, resId: Int, duration: Int): Toast!

2. AlertDialog

  • 안드로이드 다이얼로그의 기본
  • AlertDialog의 화면은 title, content, button 영역으로 구분
    • content 부분은 단순히 문자열만 출력할 수도 있고 다양한 화면을 출력할 수도 있다
    • button은 지정해주지 않으면 아예 안뜨니 꼭 지정해주자
  • AlertDialog.Builder를 생성하고 Builder의 setter 함수를 이용해 다이얼로그의 정보를 지정
    • open fun setIcon(iconId: Int): AlertDialog.Builder!
    • open fun setTitle(title: CharSequence!): AlertDialog.Builder!
    • open fun setMessage(message: CharSequence!): AlertDialog.Builder!
  • 버튼은 최대 3개까지만 추가
    • open fun setPositiveButton(text: CharSequence!, listener: DialogInterface.OnClickListener!)
    • open fun setNegativeButton(text: CharSequence!, listener: DialogInterface.OnClickListener!)
    • open fun setNeutralButton(text: CharSequence!, listener: DialogInterface.OnClickListener!)

  • 목록 제공 다이얼로그
  • open fun setItems(items: Array<CharSequence!>!, listener: DialogInterface.OnClickListener!):
  • open fun setMultiChoiceItems(items: Array<CharSequence!>!, checkedItems: BooleanArray!, listener: DialogInterface.OnMultiChoiceClickListener!):
  • open fun setSingleChoiceItems(items: Array<CharSequence!>!, checkedItem: Int, listener: DialogInterface.OnClickListener!):

3. DatePickerDialog

  • 날짜를 입력받기 위해 제공되는 다이얼로그
  • DatePickerDialog(context: Context, listener: DatePickerDialog.OnDateSetListener?, year: Int, month: Int, dayOfMonth: Int)

4. TimePickerDialog

  • 시간 입력받기 위해 제공되는 다이얼로그
  • TimePickerDialog(context: Context, listener: TimePickerDialog.OnTimeSetListener!, hourOfDat: Int, minute: Int, is24HourView: Boolean)
profile
🤗🤗🤗

0개의 댓글