首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >服务中的ACTION_BATTERY_CHANGED意图

服务中的ACTION_BATTERY_CHANGED意图
EN

Stack Overflow用户
提问于 2013-03-10 01:31:38
回答 2查看 7.9K关注 0票数 3

我正在使用此代码来跟踪我的服务中的电池信息:

代码语言:javascript
复制
    Intent i = new ContextWrapper(applicationContext).registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
     // now you can get the level and scale from this intent variable
    int level = i.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
    int scale = i.getIntExtra(BatteryManager.EXTRA_SCALE, -1);

float battPct = level/(float)scale;

1.我想知道更换电池后是否会自动更换?或者我需要自己定期触发这个意图? 2.另外,我想知道是否有一种方法可以计算出从剩余电池的1%使用到现在已经过去了多少时间。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-10 01:33:30

获取变化值的更好的方法你应该使用BroadcastReceiver

当电池更换时,获取更改后的值。您需要使用BroadCastReceiver

代码语言:javascript
复制
IntentFilter batteryLevelFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(batteryLevelReceiver, batteryLevelFilter);

BroadcastReceiver batteryLevelReceiver = new BroadcastReceiver(){
    @Override
    public void onReceive(Context context, Intent intent){
        int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
        int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
        float battPct = level/(float)scale;       
    }
};
票数 9
EN

Stack Overflow用户

发布于 2021-12-19 16:11:32

下面的内容对我很有效:

在清单文件中,找到**<activity android:name=".MainActivity">**并替换为***<activity android:name=".MainActivity" android:exported="true">***

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

https://stackoverflow.com/questions/15313758

复制
相关文章

相似问题

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