【发布时间】:2020-06-16 15:30:58
【问题描述】:
我正在尝试在后台更改电池百分比时触发一些代码。
我试过了, 报警管理器: 具有相同意图 ID 的警报管理器无法多次工作。所以,我每次都使用不同的 id 并从 alam 设置新的警报 但每次我打开应用程序时它都会运行多个警报。
广播接收器: android 8 后电池更换广播不起作用
【问题讨论】:
我正在尝试在后台更改电池百分比时触发一些代码。
我试过了, 报警管理器: 具有相同意图 ID 的警报管理器无法多次工作。所以,我每次都使用不同的 id 并从 alam 设置新的警报 但每次我打开应用程序时它都会运行多个警报。
广播接收器: android 8 后电池更换广播不起作用
【问题讨论】:
您可以监控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 所示,返回当前电池状态意图。'
【讨论】: