0

我构建了一个 android 应用程序,我想在其中显示当前的电池状态。我搜索并找到了电池状态的代码,但它会以文本形式显示电池状态,如电池电量剩余 50%。但我想将其显示为指示器如下图所示。我该怎么做。而且我还希望电池状态在其充电状态增加或减少时自动更改。

电池状态代码

package com.example.androidbatterypercentage;

  import android.os.BatteryManager;
  import android.os.Bundle;
  import android.app.Activity;
  import android.content.BroadcastReceiver;
  import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.view.Menu;
 import android.widget.TextView;

     public class MainActivity extends Activity {
   private TextView batteryPercent;
   private void getBatteryPercentage() {
    BroadcastReceiver batteryLevelReceiver = new BroadcastReceiver() {
        public void onReceive(Context context, Intent intent) {
         context.unregisterReceiver(this);
         int currentLevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
         int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
         int level = -1;
         if (currentLevel >= 0 && scale > 0) {
             level = (currentLevel * 100) / scale;
          }
          batteryPercent.setText("Battery Level Remaining: " + level + "%");
      }
    };  
    IntentFilter batteryLevelFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
     registerReceiver(batteryLevelReceiver, batteryLevelFilter);
 }


     protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      batteryPercent = (TextView) this.findViewById(R.id.batteryLevel);
      getBatteryPercentage();
  }


  public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
  }

  }

xml文件是

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      android:layout_width="match_parent"
       android:layout_height="match_parent"
       tools:context=".MainActivity">


  <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:text="@string/hello_world" />

  </RelativeLayout>
4

2 回答 2

0

您好,有当前电池状态的示例链接。

1)显示安卓设备的电池信息

2)获取设备电池信息

您可以使用该过程threadTimerTaskservices自动获取

我希望这有帮助

于 2014-02-04T07:43:54.460 回答
0

如果您想收到任何电池更改的通知,您应该创建一个BroadcastReceiver并监听ACTION_BATERY_CHANGED意图。您可以相应地更改您的 TextView 或图像。

于 2014-02-04T08:31:11.483 回答