2012-09-10 10 views
12

So erhalten Sie den Akkustand mit 1% Genauigkeit.So erhalten Sie den Akkustand mit 1% Genauigkeit in ios

 [UIDevice currentDevice].batteryLevel 

Gibt Batteriestand mit Genauigkeit von 5%. Aber ich benutzte vor kurzem Batterie-Doktor-App auf meinem iphone 4S, das IOS 5.1 laufen lässt, das Batterie-Niveau mit 1% Genauigkeit gibt. Wer noch keine Idee hat, wie können wir diese Genauigkeit erhalten ... Ich habe versucht, und viel gesucht, aber nicht immer, wie sie es die Berechnung .. Vielen Dank im Voraus ...

+3

Ich denke, Sie sprechen über Präzision, anstatt Genauigkeit. Sowohl 19/20 als auch 99/100 sind gleich genau, sogar für genau die gleiche Speicherladung. Der Übergang zu 1-stelligen Schritten ist präziser, obwohl möglicherweise akkurat (z. B. die humorvolle Antwort von @ tipicalflow unten). –

+2

@AlexBrown Humorvoll ist, wenn Menschen über Antworten auf Fragen lachen, auf die sie selbst keine Antwort haben: D. Alles, was Sie tun jetzt ist das Demotivieren der OP! – tipycalFlow

+0

@AlexBrown He ** ist ** reden über Genauigkeit, nicht Präzision! Ich glaube nicht, dass Sie das Konzept der iOS-Akkuleistung vollständig verstehen. In einer dicht geschlossenen iOS-Umgebung, die einzigen Daten zur Verfügung Ein Entwickler ist die verbleibende Batterieleistung in Prozent.Wir haben nicht den Nenner, um die Genauigkeit in Frage zu stellen - nur ein Prozentwert, der nach einem Intervall von 5% ausgelöst wurde. – tipycalFlow

Antwort

1

Antwort kommt von this question:

Sie können eine NSTimer verwenden, um die angezeigten Werte zu manipulieren, indem Sie die Darstellung der Genauigkeit angeben. Für jede Sitzung ist die App aktiv, erstellen Sie eine Beispielbatterie (z. B. die Zeit, die der Batteriestand benötigt, um von 100% auf 95%, dann 95% auf 90% usw. zu fallen) und speichern Sie sie auf dem Gerät selbst . Verwenden Sie dann den Timer, um den aktualisierten (und geschätzten) Batteriewert entsprechend der Zeit einzustellen, die der Batteriestand um 5% geteilt durch 5 (unter der Annahme, dass jeder Prozentwert nach demselben Intervall fällt, wird variieren, aber er hat gewonnen) 't ein wahrnehmbare Abweichung sein). Es ist wahr, dass die Akkulaufzeit mit der Zeit abnimmt, aber da wir den Timer-Wert gemäß den in der letzten Sitzung gespeicherten Werten anpassen, sollte er über die Lebensdauer des Geräts hinweg ziemlich genau sein.

Edit- Für den Anfangszustand können Sie je nach iPhone-Modell (3,3G, 4,4S) einen Standardwert angeben. Für diese unterschiedlichen Geräte können unterschiedliche Werte berechnet werden.

+0

Sie können nicht den Anschein von Genauigkeit haben, das bedeutet nichts - es ist entweder genau oder nicht. Sie können es genauer machen, obwohl dies die Genauigkeit entweder verringern oder erhöhen kann, je nachdem, wie gut Ihre Quelldaten und Ihr Timing-Modell sind. –

+0

Ja, wir können unsere Berechnung mit dieser Methode genauer machen, aber dafür müssen wir warten, wenn die App zum ersten Mal startet, um Daten zu berechnen und präzisen Akkustand zu geben..Aber einen Blick auf diese App "http: // Englisch: itunes.apple.com/in/app/battery-doctor/id438159515?mt=8 "Gib der Batterie eine Genauigkeit von bis zu 1% ... Hoffe die Linkhilfe ... also denke ich, dass es eine Möglichkeit geben muss, den Level genau zu berechnen Speichern von Daten und interpolieren .. – Ankit

+0

@AlexBrown Die * Darstellung * der Genauigkeit ist für den ** Benutzer **, nicht der Programmierer (natürlich ist es nicht genau für die Programmierer)! – tipycalFlow

7

Wenn Sie Einstellung-> Allgemein-> Verwendung-> Batterieprozentsatz ausschalten, zeigt Battery Doctor Ihren Akkustand mit% 5 Genauigkeit an ... Ich nehme an, dass sie einen Bilderkennungsalgorithmus für die obere rechte Ecke von das Gerät, wo die Batterie Prozent angezeigt wird.

3

Wenn Sie jailbroken sind, können Sie einfach verwenden

int percent = [(SBUIController*)[objc_getClass("SBUIController") sharedInstance] displayBatteryCapacityAsPercentage]; 

Diese Methode auf iOS 4.3+ vorhanden ist, und ist wahrscheinlich das, was Battery Doctor verwendet.

9

Beginnend mit iOS 8,

[UIDevice currentDevice].batteryLevel 

bietet 1% Genauigkeit :)

1

In iOS 8.1.x ich, dass Batteriestand jetzt bemerkt habe nun den genauen Ladezustand der Batterie für Anwendungen berichten. Zuvor wurde alle 5% gemeldet. Es gibt nichts mehr für Sie in iOS 8.1.x zu tun als [UIDevice currentDevice].batteryLevel sollte dies jetzt automatisch melden.

+0

Brauchen Sie nach, danke .. – Ankit

Verwandte Themen