Reputation: 3386
I am able to get the frame rate of the Android system using the following answer in Java: https://stackoverflow.com/a/8908035/4190159
However, being new to Kotlin I was wondering how can I get the frame rate of Android system using Kotlin code? (my app is using Kotlin instead of Java)
The code as follows is not working for me:
fun getFrameRate(): String {
val timeElapsed1: android.os.SystemClock = SystemClock.elapsedRealtime()
val timeElapsed2: android.os.SystemClock = SystemClock.elapsedRealtime()
val frameTime = 1000.0 / (timeElapsed2 - timeElapsed1)
return frameTime
}
Upvotes: 0
Views: 1309
Reputation: 40193
SystemClock.elapsedRealtime()
returns a long
, not an android.os.SystemClock
:
fun getFrameRate(): String {
val timeElapsed1: Long = SystemClock.elapsedRealtime()
val timeElapsed2: Long = SystemClock.elapsedRealtime()
val frameTime = 1000.0 / (timeElapsed2 - timeElapsed1)
return frameTime
}
or you can simply omit the types and let Kotlin infer them for you:
fun getFrameRate(): String {
val timeElapsed1 = SystemClock.elapsedRealtime()
val timeElapsed2 = SystemClock.elapsedRealtime()
val frameTime = 1000.0 / (timeElapsed2 - timeElapsed1)
return frameTime
}
Lastly, you'll need to convert frameTime
to a String
:
fun getFrameRate(): String {
val timeElapsed1 = SystemClock.elapsedRealtime()
val timeElapsed2 = SystemClock.elapsedRealtime()
val frameTime = 1000.0 / (timeElapsed2 - timeElapsed1)
return frameTime.toString()
}
Upvotes: 2