首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BatteryManager统计数据在安卓上不起作用

BatteryManager统计数据在安卓上不起作用
EN

Stack Overflow用户
提问于 2012-10-02 08:11:05
回答 2查看 2.7K关注 0票数 1

我正在尝试使用BroadCastReceiver获取击球手级别:

代码语言:javascript
复制
int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);
int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, 0);

我已经向AndroidManifest.xml添加了以下权限:

代码语言:javascript
复制
<uses-permission android:name="android.permission.BATTERY_STATS" />

当我打印级别和比例时,我看到默认值为0。是否有其他设置?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-02 08:28:14

Calculating Battery Level in %:

您可以通过从电池状态意图中提取当前电池电量和比例来找到当前电池电量,如下所示:

代码语言:javascript
复制
int level = battery.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = battery.getIntExtra(BatteryManager.EXTRA_SCALE, -1);

float batteryPct = level / (float)scale;

像这样实现BroadcastReceiver:

代码语言:javascript
复制
 BroadcastReceiver mybatteryReceiver= new BroadcastReceiver() {
            public void onReceive(Context context, Intent intent) {
                int rawlevel = intent.getIntExtra("level", -1);
                int scale = intent.getIntExtra("scale", -1);
                int level = -1;
                if (rawlevel >= 0 && scale > 0) {
                    level = (rawlevel * 100) / scale;
                }
                Log.d("TEMP","Battery Level in % is:: " + level + "%");
            }
        };

从这里获取一个代码,它是经过测试的。工作正常。

https://www.dropbox.com/s/1y6q5wu526ngz7t/BatteryStats.zip

代码的结果:

票数 3
EN

Stack Overflow用户

发布于 2014-07-27 19:50:52

获取电池充电状态不需要权限,只需在广播接收器中使用以下代码即可:

int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL,0);

这将导致电池电量:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12682841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档