Android:如何在没有Broadcast Receiver for API 17级及以上的情况下获得电池状态?

时间:2017-04-07 12:48:59

标签: android batterylevel batterymanager

我想获得电池状态。我在堆栈上搜索它,我发现使用广播接收器的示例代码,但问题是在我的代码中我不能使用广播接收器。

有没有办法在不使用广播接收器的情况下获得电池状态。 API 21及更高版本是可能的,但我希望它适用于API 17及更高版本。 谢谢

1 个答案:

答案 0 :(得分:2)

[HttpPost]
public ActionResult Index(string k)
{      
    var stream = Request.InputStream;
    string value = string.Empty;

    using (var reader = new StreamReader(stream))
    {
        value = reader.ReadToEnd();
    }

    Debug.WriteLine(String.Format("Result: {0};", value));
    return Json(new { data =  value}, JsonRequestBehavior.DenyGet);
}

Intent battery=registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); 将包含最后一次广播battery ACTION_BATTERY_CHANGED,其附加内容将包含电池信息,使用Intent上记录的额外密钥。

(此代码适用于BatteryManager子类的方法;或者,在其他Context上调用registerReceiver()