【问题标题】:Battery status is always not charging电池状态总是不充电
【发布时间】:2012-07-21 02:47:36
【问题描述】:
@Override
public void onReceive(Context context, Intent intent) {
int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS,
    BatteryManager.BATTERY_STATUS_UNKNOWN);

    if (status == BatteryManager.BATTERY_STATUS_CHARGING
        || status == BatteryManager.BATTERY_STATUS_FULL)
        Toast.makeText(context, "Charging!", Toast.LENGTH_SHORT).show();
    else
        Toast.makeText(context, "Not Charging!", Toast.LENGTH_SHORT).show();
}

清单:

<receiver android:name=".receiver.BatteryReceiver">
    <intent-filter>
        <action android:name="android.intent.action.ACTION_POWER_CONNECTED"/>
        <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/>
        <action android:name="android.intent.action.BATTERY_CHANGED" />
    </intent-filter>
</receiver>

在此代码中,Toast 始终显示“未充电!”。我在实际设备上进行了测试,当我将其插入 AC 或 USB 电源时,它仍然显示“未充电!”吐司。

【问题讨论】:

  • intent 有问题。getIntExtra,检查从哪里调用此方法并确保使用正确的参数设置 Intent
  • 你的状态是什么?
  • @John 我在清单中使用它。
  • @zmbq 我拔掉插头时得到 1,插入时得到 1。

标签: java android status power-management


【解决方案1】:

尝试以下方法:

IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = context.registerReceiver(null, ifilter);
int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1);

'status' 现在将是一个介于 1 和 5 之间的值:

1 = Unknown
2 = Charging
3 = Discharging
4 = Not Charging
5 = Full

您的代码:

if (status == BatteryManager.BATTERY_STATUS_CHARGING
    || status == BatteryManager.BATTERY_STATUS_FULL) ...

可以写成:

if (status == 2 || status == 5) ...

两者是相同的,因为 BatteryManager.BATTERY_STATUS_CHARGING 是一个总是等于 2 的常数,而 BatteryManager.BATTERY_STATUS_FULL 是一个总是等于 5 的常数。

【讨论】:

【解决方案2】:

您无法通过清单注册ACTION_BATTERY_CHANGED,因此您不会收到这些广播。您正在尝试从 Intents 获取没有这些附加功能的 BatteryManager 附加功能(例如,ACTION_POWER_CONNECTED)。结果,您将获得BATTERY_STATUS_UNKNOWN 的默认值。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-28
  • 2018-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多