Intereting Posts

Как рассчитать оставшееся время батареи телефона Android?

Я разрабатываю приложение для работы с батареями на Android Studio. Я хочу знать, как рассчитать оставшееся время, играя музыку или видео, просматривая веб-сайт или в режиме ожидания. Я видел много приложений для Android, подобных этому, но не вижу исходного кода. Я хочу увидеть пример кода для вычисления оставшегося времени для воспроизведения музыки или видео и так далее. Если раньше у вас было здоровое приложение для Android, пожалуйста, поделитесь своими знаниями.

– Простейший и самый простой способ рассчитать оставшееся время автономной работы:

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> 

Вы не можете точно догадаться, сколько времени осталось для разряда батареи, потому что могут быть разные приложения или потребляемая пользователем батарея.

Однако вы можете получить время автономной работы с помощью широковещательного приемника, зарегистрировав приемник для действия Intent.ACTION_BATTERY_CHANGED.

Используя приведенное ниже выражение в методе onReceive () BroadcastReceiver с действием выше Intent, вы получите доступный уровень заряда батареи. Но вы не можете оценить оставшееся время, потому что некоторые приложения могут потреблять больше энергии.

 battery_level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); 

Следующий код поможет вам рассчитать уровень заряда батареи

 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; }