开发者

How to obtain Battery Stats in Android at runtime?

开发者 https://www.devze.com 2022-12-20 09:22 出处:网络
I want to display Battery level st开发者_运维问答ats in my app. How can we obtain such information like Battery Power, Battery Voltage, etc.?BroadcastReceiver batteryLevelReceiver = new BroadcastRecei

I want to display Battery level st开发者_运维问答ats in my app. How can we obtain such information like Battery Power, Battery Voltage, etc.?


   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);
}

or check out this guy (who wrote the code I posted): http://mihaifonoage.blogspot.com/2010/02/getting-battery-level-in-android-using.html


Is this of any help?

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));
   }
}

Also, see this.

0

精彩评论

暂无评论...
验证码 换一张
取 消