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)