【问题标题】:Android app battery monitoring安卓应用电池监控
【发布时间】:2016-01-10 09:59:13
【问题描述】:

对于我的 Android 应用,我需要监控所有运行该应用的手机的电池消耗情况。在应用程序中需要一个按钮来启动和停止监控,并且在监控停止后,电池监控输出应保存为手机本身的txt。我已经查看了电池统计信息,但根据文档,监控过程是通过将设备连接到 PC 并在监控重新连接设备并进行转储之后启动的。

那么是否可以在不连接电脑的情况下启动和停止监控并将输出本地保存在手机上?

【问题讨论】:

    标签: android monitoring battery


    【解决方案1】:

    当电池发生变化时,您可以使用广播接收器接收有关电池的信息。

     private BroadcastReceiver mBatteryInfoReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context ctx, Intent intent) {
    
                mLevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, Const.VALUE_UNSET);
                mTemperature = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, Const.VALUE_UNSET);
                mStatus = intent.getIntExtra(BatteryManager.EXTRA_STATUS, Const.VALUE_UNSET);
                mPlugged = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, Const.VALUE_UNSET);
                mScale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, Const.VALUE_UNSET);
                mHealth = intent.getIntExtra(BatteryManager.EXTRA_HEALTH, Const.VALUE_UNSET);
                mVoltage = intent.getIntExtra(BatteryManager.EXTRA_VOLTAGE, Const.VALUE_UNSET);
                mTechnology = intent.getStringExtra(BatteryManager.EXTRA_TECHNOLOGY);
    }
    

    不要忘记在您的活动(或服务,如果它应该在后台运行)中(取消)注册接收器。

    注册(onCreate / onStart...):

     registerReceiver(mBatteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
    

    取消注册(onPause / onDestory):

    unregisterReceiver(...)
    

    写入文件应该不会太难,只需在此处搜索 SO,不要忘记设置权限(也用于处理文件):

    <uses-permission android:name="android.permission.BATTERY_STATS"/>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多