计算设备充满电的剩余时间



我有一个活动,它包含一个TextView,应该显示插入的android设备充满电的剩余时间。。。我使用BatteryManager类来实现这一点。。。我从那个类中创建了一个对象,发现有一个名为ComputeChargeTimeRemaining的方法唯一的问题是,该方法的结果是数据类型长,我不知道如何将该数据类型转换为时间值。。。这正是我决定寻求帮助的原因。。。这是我用来做这件事的代码…

class Notes : AppCompatActivity{
//TextView to show remaining charge time
TextView mytext;
//Timer to update the value of the TextView every Second 
System.Timers.Timer _timer;
protected override void OnCreate(Bundle SavedInstanceState){
mytext=(TextView)FindViewById(Resource.Id.textView1);
_timer=new System.Timers.Timer(1000);
_timer.Enabled =true;
_timer.Elapsed += Timer_Elapsed;
} 
private void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) {
RunOnUiThread(()=>{
BatteryManager batteryManager=(BatteryManager)GetSystemService(Context.BatteryService);
long remaining_time=batteryManager.ComputeRemainingChargeTime();
//Here is where I have a problem converting the long to real hours,minutes time format, please help
}) ;
} 
} 

让我们访问文档:

computeChargeTimeRemaining

计算时间的近似值(以毫秒为单位(直到电池充满电。如果没有时间可以,则返回-1被计算:要么没有足够的当前数据来生成判定电池当前正在放电。

那么我们该如何应对呢?

TimeSpan应该进行

var timeSpan = TimeSpan.FromMilliseconds(remaining_time);

现在您有了TimeSpan的特性,如HoursMinutesSecondsTotalMinutes等,您还有格式说明符Standard TimeSpan格式字符串:

var hours timeSpan.Hours;
var minutes = timeSpan.Minutes;
// or
var str = timespan.ToString("hh\:mm\:ss"));

最新更新