본문 바로가기

Android/Troubleshooting

안드로이드 디바이스 정보 가져오기

지난 글에 이어서 로그를 남기는데 사용했던 디바이스 정보를 가져오는 함수들을 기록해 두려고 한다.

 

1. 디바이스 모델 명, OS 버전, Api level 정보 가져오기

    fun getOSVersion(): String {
        val deviceModel = Build.MODEL
        val version = Build.VERSION.RELEASE
        val sdkInt = Build.VERSION.SDK_INT
        return "Device Model: $deviceModel, OS Version: $version(Api level: $sdkInt)"
    }

 

 

2. 디바이스 배터리 정보(잔여량) 가져오기

    fun getBatteryLevel(context: Context): String {
        val batteryStatus: Intent? = IntentFilter(Intent.ACTION_BATTERY_CHANGED).let { ifilter ->
            context.registerReceiver(null, ifilter)
        }
        val level: Int = batteryStatus?.getIntExtra(BatteryManager.EXTRA_LEVEL, -1) ?: -1
        val scale: Int = batteryStatus?.getIntExtra(BatteryManager.EXTRA_SCALE, -1) ?: -1

        val batteryPct = level / scale.toFloat() * 100
        return "Battery Level: ${batteryPct.toInt()}%"
    }

 

 

3. 디바이스 메모리 사용량과 총용량 가져오기

    fun getDeviceMemoryUsage(context: Context): String {
        val activityManager = context.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
        val memoryInfo = ActivityManager.MemoryInfo()
        activityManager.getMemoryInfo(memoryInfo)

        val availableMemory = memoryInfo.availMem / (1024 * 1024)
        val totalMemory = memoryInfo.totalMem / (1024 * 1024)
        val usedMemory = totalMemory - availableMemory
        val usedPct = usedMemory / totalMemory.toFloat() * 100

        return "Used Percent: ${usedPct}%, Used Memory: ${usedMemory}MB, Total Memory: ${totalMemory}MB"
    }

 

 

히히 이거 전부 로그로 남겨도 문제 파악 못하면 나 죽어!

DNS 오류 잡아보겠다고 별걸 다하는 중이네