mirror of
https://git.citron-emu.org/Citron/Citron.git
synced 2025-01-22 08:36:32 +01:00
android: Fix battery temperature reading in EmulationFragment
Replaces the battery temperature reading implementation with a more compatible approach using ACTION_BATTERY_CHANGED broadcast intent. This change provides better backwards compatibility and adds proper error handling for the temperature reading functionality.
This commit is contained in:
parent
382999025a
commit
3698478977
2 changed files with 13 additions and 6 deletions
|
@ -28,7 +28,7 @@ android {
|
|||
namespace = "org.citron.citron_emu"
|
||||
|
||||
compileSdkVersion = "android-34"
|
||||
ndkVersion = "26.1.10909125" // "27.2.12479018" // "28.0.12433566 rc1"// "28.0.12674087 rc2" // "26.1.10909125"
|
||||
ndkVersion = "27.2.12479018" // "27.2.12479018" // "28.0.12433566 rc1"// "28.0.12674087 rc2" // "26.1.10909125"
|
||||
|
||||
buildFeatures {
|
||||
viewBinding = true
|
||||
|
|
|
@ -7,6 +7,8 @@ import android.annotation.SuppressLint
|
|||
import android.app.AlertDialog
|
||||
import android.content.Context
|
||||
import android.content.DialogInterface
|
||||
import android.content.Intent
|
||||
import android.content.IntentFilter
|
||||
import android.content.pm.ActivityInfo
|
||||
import android.content.res.Configuration
|
||||
import android.net.Uri
|
||||
|
@ -1094,10 +1096,15 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|||
}
|
||||
|
||||
private fun getBatteryTemperature(context: Context): Float {
|
||||
val batteryManager = context.getSystemService(Context.BATTERY_SERVICE) as BatteryManager
|
||||
// Get temperature in tenths of a degree Celsius
|
||||
val temperature = batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_TEMPERATURE)
|
||||
// Convert to degrees Celsius
|
||||
return temperature / 10.0f
|
||||
try {
|
||||
val batteryIntent = context.registerReceiver(null, IntentFilter(Intent.ACTION_BATTERY_CHANGED))
|
||||
// Temperature in tenths of a degree Celsius
|
||||
val temperature = batteryIntent?.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, 0) ?: 0
|
||||
// Convert to degrees Celsius
|
||||
return temperature / 10.0f
|
||||
} catch (e: Exception) {
|
||||
Log.error("[EmulationFragment] Failed to get battery temperature: ${e.message}")
|
||||
return 0.0f
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue