【问题标题】:android app to show notification when battery level is above certain percentandroid应用程序在电池电量高于一定百分比时显示通知
【发布时间】:2021-09-05 20:55:04
【问题描述】:

我希望我的 android 应用在电池电量高于某个百分比时显示通知,这类似于 android 中的低电量通知。不是通过分配一个后台任务来在每分钟之间不断检查后台电池电量。我只想在电池电量高于一定百分比时触发通知,即使应用程序没有运行。我可以使用广播接收器来做到这一点吗?有什么建议吗?

【问题讨论】:

标签: android broadcastreceiver android-broadcast batterymanager


【解决方案1】:

广播接收器类

class BatteryBroadcastReceiver : BroadcastReceiver() {
     override fun onReceive(context: Context, intent: Intent?) {
        val level: Int = intent!!.getIntExtra(BatteryManager.EXTRA_LEVEL, 0)
        Timber.d("battery - level: %d", level)

    }
}

在活动/片段中注册您的广播

val batteryLevel = BatteryBroadcastReceiver();
registerReceiver(batteryLevel, new IntentFilter(Intent.ACTION_BATTERY_LOW));

【讨论】:

  • 感谢您回答我的问题,但您的回答有误 registerReceiver(batteryLevel, IntentFilter(Intent.ACTION_BATTERY_CHANGED)); 是正确的,而不是 registerReceiver(batteryLevel, new IntentFilter(Intent.ACTION_BATTERY_LOW));。 。但这在应用程序运行时也有效,在应用程序关闭时无效。即使应用程序关闭,我也想收到通知
  • 我认为这与 SDK 26 的变化有关,除了某些类型的广播外,不再允许隐式广播。 Here 在官方文档中
  • 是的,但这可以使用前台服务来完成
  • 可以,可以使用前台服务。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
  • 2015-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多