已知的获得电池信息的方法是进行监听,可是我的程序希望查询电池信息,也就是说我不希望一直跑一个监听程序,而是通过一个函数查询一下。请问各位有没有什么方法?

解决方案 »

  1.   

    用PowerManagerService还是batteryManagerService就可以的,记不得了。期待达人。
      

  2.   

    好像电池映射成一个设备了吧,可以直接去读取的吧。settings里好像有地方可以显示电池信息啊,建议去看看源码。
      

  3.   

    在framework层比较容易获得。
    在应用层 好象只能注册BroadcastReceiver 来接受系统发送的Action 了Intent.ACTION_BATTERY_CHANGED
    .然后定义变量来储存 收到Intent 之后获取的电池电量信息,自己再写个函数需要的时候get以下就行了不
      private BroadcastReceiver mBatteryReceiver = new BroadcastReceiver()
    {
        public void onReceive(Context context,Intent intent)
        {
            if(intent.getAction.equals(Intent.ACTION_BATTERY_CHANGED))
            {
               batteryLevel = intent.getIntExtra("level",0);
               batteryScale = intent.getIntExtra("scale",100);
               ....
            }
        }
    }
    在OnCreate 注册 mBatteryReceiver 
         registerReceiver(mBatteryReceiver,new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
    在结束的时候 记得unregisterReceiver...
      

  4.   

    I think xiaoyaoxiaonizi what get the function which is not get by broadcast receiver.But it is a good way, because if you are not a framework developer, you can't get the function which provide by BatteryManagerService.
      

  5.   

    其实大家的答案都不是我想要的,因为我的要求是立即获得这些信息,而以上方法都是需要监听的。最终我的方法是c层读取文件,跟linux下读取信息一样的方法。