Я разрабатываю приложение для здоровья аккумулятора на Android Studio. Я хочу знать, как рассчитать оставшееся время, играя музыку или видео, просматривая веб-сайт или в режиме ожидания. Я видел много приложений для Android, подобных этому, но не вижу исходного кода. Я хочу увидеть пример кода для вычисления оставшегося времени для воспроизведения музыки или видео и так далее. Если раньше у вас было здоровое приложение для Android, сообщите, пожалуйста, свои знания.Как рассчитать оставшееся время батареи телефона Android?
ответ
Вы не можете точно догадаться, сколько времени осталось для разряда батареи, поскольку могут быть разные приложения или потребляемая пользователем батарея.
Однако вы можете получить время автономной работы с помощью широковещательного приемника, зарегистрировав приемник для действия Intent.ACTION_BATTERY_CHANGED.
Используя приведенный ниже оператор в методе onReceive() BroadcastReceiver с приведенным выше действием Intent, вы получите доступный уровень заряда батареи. Но вы не можете оценить оставшееся время, потому что некоторые приложения могут потреблять больше энергии.
battery_level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
- Простейшие и наиболее простой способ рассчитать оставшийся срок службы батареи:
MainActivity.java:
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.BatteryManager;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
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);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
batteryPercent = (TextView) this.findViewById(R.id.batteryLevel);
getBatteryPercentage();
}
}
XML файл:
<?xml version="1.0" encoding="utf-8"?>
<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:id="@+id/batteryLevel"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_vertical|center_horizontal"
android:textSize="20dip">
</TextView>
</RelativeLayout>
Следующий код поможет вы должны рассчитать уровень заряда аккумулятора
public int getBatteryLevel(Context context) {
IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = context.registerReceiver(null, ifilter);
int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
return level;
}
Мне нравится ваше решение. проголосуйте от меня –