Можно ли получить уровень заряда батареи подключенных умных часов как часть Wear API? (Предпочтительно без необходимости развертывания фактического компонента износа на смарт-часах и последующего обмена данными между часами и устройством). Я видел несколько приложений для ношения, которые показывают уровень заряда батареи часов на самих часах, но я просто хотел бы узнать текущий уровень заряда батареи часов с помощью телефона.
Получить уровень заряда батареи подключенных умных часов
Ответы (2)
Вам, скорее всего, понадобится приложение для ношения, но оно должно быть очень простым.
На носимом устройстве сделайте WearableListenerService
. Попросите приложение для телефона отправить сообщение (используя APi для сообщений). . Это запустит WearableListenerService
на часах. Попросите часы получить информацию о батарее и отправить ее обратно на телефон с помощью другого сообщения.
Начните с определения текущего состояния заряда. BatteryManager транслирует все сведения об аккумуляторе и зарядке в фиксированном намерении, которое включает в себя состояние зарядки.
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;
вы можете использовать этот
public static final String EXTRA_LEVEL
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"
Вы можете найти текущий заряд батареи, извлекая текущий уровень заряда батареи и шкалу из намерения состояния батареи, как показано здесь:
int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
float batteryPct = level / (float)scale; // your %
поэтому batteryPct – это процент заряда батареи.
//тогда вы можете показать свой процент
Дополнительные сведения о BatteryManager можно найти здесь.