2014-09-17 11 views
6

Ist es möglich, den Batterieladestand angeschlossener Smartwatches als Teil der Wear API zu ermitteln? (Vorzugsweise ohne eine tatsächliche Verschleißkomponente auf der Smartwatch aufbringen zu müssen und dann zwischen der Uhr und dem Gerät hin und her zu kommunizieren). Ich habe einige Wear-Apps gesehen, die den Akkustand der Uhr auf der Uhr selbst zeigen, aber ich möchte einfach den aktuellen Akkustand der Uhr mit dem Telefon herausfinden.Batterieladezustand der angeschlossenen Smartwatches abrufen

+0

Ich denke, Sie müssen über die Daten API und eine Mikro-App gehen. – rekire

Antwort

1

Sie sind mehr t han wird wahrscheinlich eine Wear-App brauchen, aber es sollte sehr einfach sein.

Auf dem tragbaren, machen Sie eine WearableListenerService. Lassen Sie die Telefon-App eine Nachricht senden (mit der Message APi). Dies startet die WearableListenerService auf der Uhr. Lassen Sie die Uhr die Batteriedaten abrufen und senden Sie sie mit einer anderen Nachricht an das Telefon zurück.

+0

Danke für Ihre Antwort, ich endete diese Straße und es funktioniert gut. Nicht, was ich mir erhofft hatte (weil es das Tragbare etwas belastet, auch wenn es nur minimal ist), aber es funktioniert :-)! – Nick

-2

Beginnen Sie mit der Ermittlung des aktuellen Ladezustands. Der BatteryManager sendet alle Batterie- und Ladedetails in einer Sticky Intent, die den Ladezustand beinhaltet.

IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); 
Intent batteryStatus = context.registerReceiver(null, ifilter); 

können Sie den aktuellen Ladezustand extrahieren diese Weise

// Are we charging/charged? 
int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1); 
boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING || 
        status == BatteryManager.BATTERY_STATUS_FULL; 

Sie dieses

public static final String EXTRA_LEVEL 
können
Added in API level 5 
Extra for ACTION_BATTERY_CHANGED: integer field containing the current battery level, from 0 to  EXTRA_SCALE. 

Constant Value: "level" 

Sie können die aktuelle Batterieladung finden durch das Extrahieren Strom Batteriepegel und Skala von der Batt ery Status Absicht wie hier gezeigt:

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

float batteryPct = level/(float)scale; // your % 

so batteryPct ist Ihr% Batterie Prozentsatz

// Sie Ihren Anteil

Für weitere Informationen über BatteryManager dann zeigen kann, von here

+0

Hallo Nadir, danke für die ausführliche Antwort. Bitte beachten Sie, dass die Frage war, wie man den Akkustatus von Smartwatches, die mit dem Telefon verbunden sind, erhält, nicht den Akkuladestand des Telefons. Ihre Antwort erhält nur den Akkustand des Telefons. – Nick

Verwandte Themen