मुझे official documentation में इस के लिए कोई विधि नहीं मिली है, न तो कक्षा के वर्ग-डंप किए गए, private header में।
तो हमें कुछ के साथ आना होगा। इस समय सबसे अच्छा "समाधान" मेरे मन में है, डाउनलोड समय का अनुमान लगाने के दौरान किए गए दृष्टिकोण के समान है: डाउनलोड/चार्जिंग की औसत गति की गणना करना, और उस गति से शेष राशि (डेटा या चार्ज) को विभाजित करना:
[UIDevice currentDevice].batteryMonitoringEnabled = YES;
float prevBatteryLev = [UIDevice currentDevice].batteryLevel;
NSDate *startDate = [NSDate date];
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(batteryCharged)
name:UIDeviceBatteryLevelDidChangeNotification
object:nil
];
- (void)batteryCharged
{
float currBatteryLev = [UIDevice currentDevice].batteryLevel;
// calculate speed of chargement
float avgChgSpeed = (prevBatteryLev - currBatteryLev)/[startDate timeIntervalSinceNow];
// get how much the battery needs to be charged yet
float remBatteryLev = 1.0 - currBatteryLev;
// divide the two to obtain the remaining charge time
NSTimeInterval remSeconds = remBatteryLev/avgChgSpeed;
// convert/format `remSeconds' as appropriate
}
स्रोत
2012-12-16 07:22:53
यह मानता है कि चार्जिंग रैखिक है - यह नहीं है। चार्जिंग नाटकीय रूप से धीमा हो जाती है क्योंकि बैटरी पूरी तरह से बंद हो जाती है। – duskwuff
@ डस्कवफ हां, और ओएस द्वारा रिपोर्ट की गई बैटरी स्तर भी सटीक नहीं हो सकती है, आदि। आपको क्यों लगता है कि मैंने पूरे शब्द ** "औसत" ** का उपयोग किया था? Shit होता है ... –
धन्यवाद H2CO3, मैं बल्लेबाज चार्ज विधि कॉल करने में सक्षम नहीं हूं। कई सुझाव – iscavengers