如何触发电池百分比更改的事件?
Posted
技术标签:
【中文标题】如何触发电池百分比更改的事件?【英文标题】:How to Trigger event on battery percentage changed? 【发布时间】:2020-06-16 15:30:58 【问题描述】:我正在尝试在后台更改电池百分比时触发一些代码。
我试过了, 报警管理器: 具有相同意图 ID 的警报管理器无法多次工作。所以,我每次都使用不同的 id 并从 alam 设置新的警报 但每次我打开应用程序时它都会运行多个警报。
广播接收器: android 8 后电池更换广播不起作用
【问题讨论】:
【参考方案1】:您可以监控battery level
// Get the status
val batteryStatus: Intent? = IntentFilter(Intent.ACTION_BATTERY_CHANGED).let ifilter ->
context.registerReceiver(null, ifilter)
// Get the battery level percentage
val batteryPct: Float? = batteryStatus?.let intent ->
val level: Int = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1)
val scale: Int = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1)
level * 100 / scale.toFloat()
来自有关广播接收器的文档
'因为它是一个粘性意图,所以你不需要注册一个 BroadcastReceiver — 只需调用 registerReceiver 传入 null 作为接收器,如下一个 sn-p 所示,返回当前电池状态意图。'
【讨论】:
我想在应用不在前台运行时定期执行此操作。以上是关于如何触发电池百分比更改的事件?的主要内容,如果未能解决你的问题,请参考以下文章
如何检查系统上是不是存在电池,然后在 C# 中为我的 WPF 应用程序获取电池百分比