제이슨의 개발이야기

안드로이드 현재 배터리 잔량 체크 하는 메소드 본문

안드로이드

안드로이드 현재 배터리 잔량 체크 하는 메소드

제이쓰은 2021. 8. 18. 15:17
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
반응형