当前位置: 首页 > 面试题库 >

如何检测何时电池电量低:Android?

金子平
2023-03-14
问题内容

当设备的电池电量不足时,我想关闭我的应用程序。我在清单中添加了以下代码。

 <receiver android:name=".BatteryLevelReceiver" 
         <intent-filter>
            <action android:name="android.intent.action.ACTION_BATTERY_LOW" />
            <action android:name="android.intent.action.ACTION_BATTERY_OKAY" />
        </intent-filter>
 </receiver>

并在接收器中遵循以下代码

public class BatteryLevelReceiver extends BroadcastReceiver 
{

    @Override
    public void onReceive(Context context, Intent intent) 
    {
        Toast.makeText(context, "BAttery's dying!!", Toast.LENGTH_LONG).show();
        Log.e("", "BATTERY LOW!!");
    }
}

我正在模拟器上运行该应用程序,并使用telnet更改了电池电量。它会更改电池电量,但不会显示任何吐司或记录。

我想念什么?任何帮助表示赞赏!谢谢。


问题答案:

在代码中而不是在AndroidManifest文件中注册您的接收器。

registerReceiver(batteryChangeReceiver, new IntentFilter(
    Intent.ACTION_BATTERY_CHANGED)); // register in activity or service

public class BatteryChangeReceiver extends BroadcastReceiver {

    int scale = -1;
    int level = -1;
    int voltage = -1;
    int temp = -1;

    @Override
    public void onReceive(Context context, Intent intent) {
        level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
        scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
        temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, -1);
        voltage = intent.getIntExtra(BatteryManager.EXTRA_VOLTAGE, -1);
    }
}

unregisterReceiver(batteryChangeReceiver);//unregister in the activity or service

或使用null接收器收听电池电量。

Intent BATTERYintent = this.registerReceiver(null, new IntentFilter(
        Intent.ACTION_BATTERY_CHANGED));
int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
Log.v(null, "LEVEL" + level);


 类似资料:
  • 问题内容: 我刚启动Swift,一直在寻找一种检查电池电量的方法。我找到了该资源并一直在使用它,但是由于某种原因似乎无法使它正常工作。 我不太确定如何解决此问题。有任何想法吗? 问题答案: Xcode 11•Swift 5.1 首先只需启用电池监控: 然后,您可以创建一个计算属性以返回电池电量: 电池电量从0.0(完全放电)到1.0(100%充电)。访问此属性之前,请确保已启用电池监视。如果未启用

  • 我正在尝试构建一个应用程序,以获取当前连接的蓝牙耳机的电池电量。此应用程序可以在没有内置此功能的手机上使用 在stackoverflow上搜索时,我发现如何在android中获取蓝牙耳机电池状态这个问题。我使用BluetoothProfile获得了当前连接的蓝牙耳机。耳机情景模式 但是在BluetoothDevice类型的device对象中,我看不到任何获取蓝牙耳机电池电量的方法或属性 我可以获取

  • 问题内容: 我正在玩pygame,我想做的一件事是减少计算机依靠电池供电时的每秒帧数(以降低CPU使用率并延长电池寿命)。 如何通过Python检测计算机当前是否由电池供电? 我在Windows上使用Python 3.1。 问题答案: 如果您不希望这样做,则可以使用内置模块。我通常在不使用CPython的情况下运行CPython ,因此我很喜欢这些解决方案。 因为您必须定义结构,所以还需要做更多的

  • 我正试图使用AlarmManager在我的应用程序中安排延迟检查。(具体地说,在用户接近某个位置N分钟后,我希望检查他们是否还在那里,如果还在,则向他们发送通知。) 当电池电量高(比如50%),一切都像魅力一样工作。但是当它很低(比如说,10%),我得到位置更新,他们调度闹钟似乎-成功,但闹钟从来没有真正触发! 什么给?Android系统在努力节省电力时会停止发送某些类型的更新吗?我该如何解决这个

  • 在产品使用寿命结束时,Polar 鼓励您遵守当地的废弃物处理法规,并在可能的情况下利用电子设备分类收集,将废弃物对环境和人类健康的可能影响降到最低。不要将本产品作为未分类的城市垃圾处理。 为电池充电 Verity Sense 内置一块可充电电池。可充电电池的充电循环次数有限。您可在电容量明显下降之前,对电池进行 500 多次的充放电。充电循环次数还会因使用及工作条件而异。 在充电前,请确保您的 V