화면이 켜져있는지 여부를 확인하는 방법은
BoradcastReceiver를 사용해도 되겠지만
이는 상태가 변함에 따라 작동하는 코드 작성에 적합하고
단순히 확인 여부만 체크하기에는 무리가 있다.
이럴땐 PowerManager
의 isInteractive()
를 사용하면 된다.
val powerManager = getSystemService(POWER_SERVICE) as PowerManager
binding.btnSelect.setOnClickListener {
if(powerManager.isInteractive) {
Log.e("POWER MANAGER", "Screen on")
showDialog()
}
else {
Log.e("POWER MANAGER", "Screen off")
Toast.makeText(this, "화면이 꺼져있음", Toast.LENGTH_SHORT).show()
}
}