1.开始录制、结束录制增加

2. 增加电量检测、内存检查,是否低于 10%
This commit is contained in:
2026-06-04 18:25:58 +08:00
parent 124b4c1882
commit f49d208042
9 changed files with 267 additions and 0 deletions

View File

@@ -1,7 +1,11 @@
package com.qxy.dronex
import android.content.Context
import android.content.pm.ApplicationInfo
import android.os.BatteryManager
import android.os.Build
import android.os.Environment
import android.os.StatFs
import androidx.camera.view.PreviewView
import com.qxy.dronex.recording.RecordingPlatformHandler
import com.qxy.dronex.recording.RecordingPreviewFactory
@@ -33,6 +37,7 @@ class MainActivity : FlutterActivity() {
when (call.method) {
"packageInfo" -> result.success(packageInfoMap())
"deviceInfo" -> result.success(deviceInfoMap())
"deviceHealth" -> result.success(deviceHealthMap())
else -> result.notImplemented()
}
}
@@ -112,4 +117,29 @@ class MainActivity : FlutterActivity() {
"isPhysicalDevice" to !isEmulator,
)
}
private fun deviceHealthMap(): Map<String, Any?> {
val batteryLevelPercent = readBatteryLevelPercent()
val storageAvailablePercent = readStorageAvailablePercent()
return mapOf(
"batteryLevelPercent" to batteryLevelPercent,
"storageAvailablePercent" to storageAvailablePercent,
)
}
private fun readBatteryLevelPercent(): Int? {
val batteryManager = getSystemService(Context.BATTERY_SERVICE) as? BatteryManager
?: return null
val level =
batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY)
return if (level in 0..100) level else null
}
private fun readStorageAvailablePercent(): Double {
val stat = StatFs(Environment.getDataDirectory().path)
val totalBytes = stat.totalBytes
if (totalBytes <= 0L) return 100.0
val availableBytes = stat.availableBytes
return availableBytes.toDouble() / totalBytes.toDouble() * 100.0
}
}