簡體   English   中英

Android如何放置電池信息?

[英]Android How to put Battery information?

如何在Android中以textview顯示手機的電池電量?

提出任何問題之前,請先使用Google。通過The Way單擊此處 ,希望對您有所幫助。

如果您只是想以百分比顯示當前電池電量,則無需注冊接收器等。 可以做到這一點:

IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = getActivity().registerReceiver(null, ifilter);
int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1);

float batteryPct = level / (float)scale;

我的設備的電池電量目前為94%-batteryPct的值為0.94。

然后可以將其顯示在TextView中,如下所示:

textView.setText(Float.toString(batteryPct * 100) + "%"); // Displays '94.0%' using my example value

參見: http : //developer.android.com/training/monitoring-device-state/battery-monitoring.html

你可以有教程檢查這里

本教程在這里 尤其是:

int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1);

float batteryPct = level / (float)scale;

最好的方法是使用廣播接收器,因為這會在每次電池狀態變化時觸發onReceiveve,因此隨着電量下降,您的值將始終是准確的。

在活動的onCreate中,您需要為電池狀態注冊一個廣播接收器:

    IntentFilter filter = new IntentFilter();
    filter.addAction(Intent.ACTION_POWER_CONNECTED);
    filter.addAction(Intent.ACTION_POWER_DISCONNECTED);
    filter.addAction(Intent.ACTION_BATTERY_CHANGED);


    batteryMonitor = new batteryChargeMonitor();
    getActivity().registerReceiver(batteryMonitor, filter);

batteryMonitor類如下所示:

private class batteryChargeMonitor extends BroadcastReceiver{

    public void onReceive(Context context, Intent intent)
    {
        int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
        int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
        int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);

        if(status > -1 && scale > -1 && level > -1)
        {           

                   float charge = (level/(float)scale) * 1oo; 
                   Toast.makeText(context, "Battery Charge: " + charge + "%" Toast.LENGTH_LONG).show();

               boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING
                            || status == BatteryManager.BATTERY_STATUS_FULL;

        }
    }
}

從鏈接這里鏈接
接收器

public class PowerConnectionReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) { 
    int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
    boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING ||
                        status == BatteryManager.BATTERY_STATUS_FULL;

    int chargePlug = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
    boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;
    boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;
}
}

AndroidManifest.xml添加在下面

代碼變更

IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
  Intent batteryStatus = context.registerReceiver(null, ifilter);
// Are we charging / charged?
int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING ||
                 status == BatteryManager.BATTERY_STATUS_FULL;

//我們如何收費?

int chargePlug = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;
boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM