Показать текущее состояние батареи и автоматически изменяется при увеличении или уменьшении
Я создаю приложение для 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>
2 ответа
Привет, есть пример ссылки для текущего состояния батареи.
1) Отображение информации об аккумуляторе устройства Android
2) Получить информацию о батарее устройства
Вы можете использовать процесс в thread
,TimerTask
или же services
получить автоматически
Надеюсь это поможет
Если вы хотите получать уведомления о любых изменениях батареи, вы должны создать BroadcastReceiver
и слушать ACTION_BATERY_CHANGED
намерения. Вы можете изменить свой TextView или изображение соответственно.