首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在运行时获取Android中的电池状态?

如何在运行时获取Android中的电池状态?
EN

Stack Overflow用户
提问于 2010-02-15 21:04:37
回答 2查看 2.1K关注 0票数 6

我想在我的应用程序中显示电池电量统计数据。如何获取电池电量、电池电压等信息?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-15 21:21:12

代码语言:javascript
复制
   BroadcastReceiver batteryLevelReceiver = new BroadcastReceiver() {
        public void onReceive(Context context, Intent intent) {
            context.unregisterReceiver(this);
            int rawlevel = intent.getIntExtra("level", -1);
            int scale = intent.getIntExtra("scale", -1);
            int level = -1;
            if (rawlevel >= 0 && scale > 0) {
                level = (rawlevel * 100) / scale; /* This is your battery level */ 
            }
         }
    };
    IntentFilter batteryLevelFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
    registerReceiver(batteryLevelReceiver, batteryLevelFilter);
}

或者看看这个家伙(他写了我发布的代码):http://mihaifonoage.blogspot.com/2010/02/getting-battery-level-in-android-using.html

票数 3
EN

Stack Overflow用户

发布于 2010-02-15 21:22:06

this有什么帮助吗?

代码语言:javascript
复制
public class Main extends Activity {
   private TextView contentTxt;
   private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver(){
      @Override
      public void onReceive(Context arg0, Intent intent) {
         // TODO Auto-generated method stub
         int level = intent.getIntExtra("level", 0);
         contentTxt.setText(String.valueOf(level) + "%");
      }
   };

   @Override
   public void onCreate(Bundle icicle) {
      super.onCreate(icicle);
      setContentView(R.layout.main);
      contentTxt = (TextView) this.findViewById(R.id.monospaceTxt);
      this.registerReceiver(this.mBatInfoReceiver, 
         new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
   }
}

另请参见this

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

https://stackoverflow.com/questions/2266065

复制
相关文章

相似问题

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