【问题标题】:How to obtain Battery Stats in Android at runtime?如何在运行时获取 Android 中的电池统计信息?
【发布时间】:2010-02-15 13:04:36
【问题描述】:

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

【问题讨论】:

标签: android power-management


【解决方案1】:
   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

【讨论】:

    【解决方案2】:

    this 有什么帮助吗?

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-12
      • 1970-01-01
      • 2011-03-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多