`
helpbs
  • 浏览: 1163301 次
文章分类
社区版块
存档分类
最新评论

android获得手机的电量

 
阅读更多
在android中,要获得手机的电量的话,可以通过intent广播去实现,监听
action_battery_changed,例子如下:

Java代码收藏代码
  1. packagecom.liao;
  2. importandroid.app.Activity;
  3. importandroid.content.BroadcastReceiver;
  4. importandroid.content.Context;
  5. importandroid.content.Intent;
  6. importandroid.content.IntentFilter;
  7. importandroid.os.Bundle;
  8. importandroid.widget.TextView;
  9. publicclassBatteryLevelActivityextendsActivity{
  10. /**Calledwhentheactivityisfirstcreated.*/
  11. privateTextViewbatterLevel;
  12. @Override
  13. /**
  14. *Calledwhenthecurrentactivityisfirstcreated.
  15. */
  16. publicvoidonCreate(Bundleicicle){
  17. super.onCreate(icicle);
  18. setContentView(R.layout.main);
  19. batterLevel=(TextView)this.findViewById(R.id.batteryLevel);
  20. batteryLevel();
  21. }
  22. privatevoidbatteryLevel(){
  23. BroadcastReceiverbatteryLevelReceiver=newBroadcastReceiver(){
  24. publicvoidonReceive(Contextcontext,Intentintent){
  25. context.unregisterReceiver(this);
  26. intrawlevel=intent.getIntExtra("level",-1);//获得当前电量
  27. intscale=intent.getIntExtra("scale",-1);
  28. //获得总电量
  29. intlevel=-1;
  30. if(rawlevel>=0&&scale>0){
  31. level=(rawlevel*100)/scale;
  32. }
  33. batterLevel.setText("BatteryLevelRemaining:"+level+"%");
  34. }
  35. };
  36. IntentFilterbatteryLevelFilter=newIntentFilter(Intent.ACTION_BATTERY_CHANGED);
  37. registerReceiver(batteryLevelReceiver,batteryLevelFilter);
  38. }
  39. }


如果是2。0后的SDK,也可以这样:
public void onReceive(Context context, Intent intent) {

context.unregisterReceiver(this);

int rawlevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);

int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);

就是修改一下类而已
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics