【问题标题】:How to Trigger event on battery percentage changed?如何触发电池百分比更改的事件?
【发布时间】:2020-06-16 15:30:58
【问题描述】:

我正在尝试在后台更改电池百分比时触发一些代码。

我试过了, 报警管理器: 具有相同意图 ID 的警报管理器无法多次工作。所以,我每次都使用不同的 id 并从 alam 设置新的警报 但每次我打开应用程序时它都会运行多个警报。

广播接收器: android 8 后电池更换广播不起作用

【问题讨论】:

    标签: android background-task


    【解决方案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 所示,返回当前电池状态意图。'

    【讨论】:

    • 我想在应用不在前台运行时定期执行此操作。
    猜你喜欢
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-21
    • 1970-01-01
    • 2015-07-26
    • 1970-01-01
    相关资源
    最近更新 更多