我正在Android Studio上开发电池健康应用。 我想知道如何通过播放音乐或视频,浏览网站或待机来计算剩余时间。 我见过很多像这样的Android应用程序,但看不到源代码。 我想查看用于计算播放音乐或视频的剩余时间的示例代码等。如果您之前开发过Android电池健康应用程序,请分享您的知识。
答案 0 :(得分:3)
- 计算剩余电池寿命的最简单,最简单的方法:
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>
答案 1 :(得分:2)
您无法准确猜测电池放电剩余的时间,因为可能有不同的应用或服务消耗电池。
然而,您可以通过注册接收器进行操作Intent.ACTION_BATTERY_CHANGED,在广播接收器的帮助下获得电池寿命。
通过在具有上述Intent操作的BroadcastReceiver的onReceive()方法中使用以下语句,您将获得当前可用的电池电量。但你无法估计剩余的时间,因为一些应用程序可能消耗更多的电量。
battery_level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
答案 2 :(得分:0)
以下代码可帮助您计算电池电量
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;
}