首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从电池经理意图获取默认值

从电池经理意图获取默认值
EN

Stack Overflow用户
提问于 2014-03-18 10:00:49
回答 1查看 452关注 0票数 0

我正在试图监视我的电池状态,但我一直从侦听器获取默认值,这是我的接收类:

代码语言:javascript
复制
public class BatteryIndicatorListener extends BroadcastReceiver{

@Override
public void onReceive(Context context, Intent intent) {

    Log.d("battery status", "changed");

    int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
    boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING ||   status == BatteryManager.BATTERY_STATUS_FULL;
    int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
    int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);

    int chargePlug = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
    boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;
    boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;

    Log.d("battery status", "chargeplug: "+chargePlug);
   Log.d("battery status", "status: "+status);
   Log.d("battery status", "is charging: "+isCharging);
   Log.d("battery status", "usb charging: "+usbCharge);
   Log.d("battery status", "ac charging: "+acCharge);
  Log.d("battery status", "level: "+level);
   Log.d("battery status", "scale: "+scale);

下面是我的logcat输出:

代码语言:javascript
复制
03-18 10:44:50.806: D/battery status(7855): changed
03-18 10:44:50.806: D/battery status(7855): chargeplug: -1
03-18 10:44:50.806: D/battery status(7855): status: -1
03-18 10:44:50.806: D/battery status(7855): is charging: false
03-18 10:44:50.806: D/battery status(7855): usb charging: false
03-18 10:44:50.806: D/battery status(7855): ac charging: false
03-18 10:44:50.806: D/battery status(7855): level: -1
03-18 10:44:50.806: D/battery status(7855): scale: -1

我的舱单上有这个:

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



<receiver android:name="com.zivkesten.find_a_place.control.service.BatteryIndicatorListener" >
        <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"/>
            <action android:name="android.intent.action.BATTERY_LOW"/>
            <action android:name="android.intent.action.BATTERY_OKAY"/>
        </intent-filter>
    </receiver>

我有遗漏什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-10 11:09:54

尝尝这个。

代码语言:javascript
复制
IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = context.registerReceiver(null, ifilter);

int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22475882

复制
相关文章

相似问题

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