Notice
Recent Posts
Recent Comments
Link
제이슨의 개발이야기
안드로이드 현재 배터리 잔량 체크 하는 메소드 본문
728x90
반응형
안녕하세요 ! 오늘은 배터리 잔량 체크 메소드에 대해서 이야기 해보려구 합니다!
일단 왜 배터리 잔량 체크가 필요할까요?
여러가지 이유로 필요한 경우가 있겠지만 제가 생각하기에는 어떤 특정한 네트워크 통신간에 배터리 가 없어서 갑자기 끊어지는 경우 예상치 못한 이슈가 발생할 수 있는 경우가 있어서
이러한 이슈를 사전에 막기 위해서 잔량이 너무 적으면 통신을 막거나 배터리 충전을 하도록 유도하는 메시지를 띄웁니다!
저같은 경우 음성채팅 앱을 만들고 있는대 음성 채팅 간에 배터리가 없어서 핸드폰이 꺼지는 경우 큰 이슈가 발생하여 예방책으로 20%미만은 접속을 제한 하려고 합니다!
그래서 저는 이런 배터리 잔량 등 핸드폰 의 정보를 가저오는 클래스 를 하나 만들고 거기에 메소드를 작성 하여 필요한 부분에서
해당 메소드를 호출 하고 있습니다!
MyPhone.class
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.os.BatteryManager
class MyPhone {
fun getBatteryRemain(context: Context): Int {
val intentBattery: Intent? = context.registerReceiver(null, IntentFilter(Intent.ACTION_BATTERY_CHANGED))
val level = intentBattery?.getIntExtra(BatteryManager.EXTRA_LEVEL, -1)
val scale = intentBattery?.getIntExtra(BatteryManager.EXTRA_SCALE, -1)
val batteryPct = level?.div(scale?.toFloat()!!)
if (batteryPct != null) {
return (batteryPct * 100).toInt()
}
return -1
}
}
return 값이 -1인 경우에 별도의 예외처리 문을 작성 하셔야합니다!
사용 하는 부분
MyPhone().getBatteryRemain(context) 를 호출해서 현재 자신의 핸드폰의 잔량을 체크 할 수 있습니다!
728x90
반응형
'안드로이드' 카테고리의 다른 글
(포트포워딩 하는법)외부 Client 와 VirtualBox Ubuntu 환경에서 작동하는 Server 연결 (2) | 2022.03.30 |
---|---|
build.Gradle 파일? build.Gradle(project) 와 build.Gradle(app) 차이 (0) | 2021.09.06 |
안드로이드 앱 포그라운드, 백그라운드 체크 하는 방법 ! 포그라운드,백그라운드 일때 푸시 메시지 다르게 구현 (0) | 2021.08.13 |
JSON To Kotlin 플러그인 자동으로 Data Model을 만들자 ! 개발 소요 시간 단축 (0) | 2021.08.10 |
Service 컴포넌트 onTaskRemoved(rootIntent: Intent?) 앱을 강제종료 시켰을 때 (0) | 2021.07.20 |