rus | eng
PDF Печать RSS
Приложения для Windows Phone 7, зависящие от источника питания  

Не всегда мобильное приложение удается сделать экономичным по отношению к батарее. Яркий пример таких приложений – автомобильная навигация. В этом случае для предотвращения быстрого разряда батареи следует использовать внешнее питание. В этой заметке я покажу каким образом отслеживать такие ситуации.

В случаях, когда сценарии использования нашего приложения предполагают наличие внешнего питания, следовало бы предупредить пользователя об этом. Напрашивается следующая логика: перед запуском ресурсоемкого программного кода мы должны проверить присутствует ли внешний источник питания и, если нет, то предупредить пользователя о том, что батарея может быть быстро истощена. То же самое следует проделывать всякий раз, когда внешнее питание отключается.

Эту логику просто реализовать, используя класс DeviceStatus. Для наших целей он содержит:

  • свойство PowerSource – позволяет определить текущий источник питания (батарея или внешний);
  • событие PowerSourceChanged – позволяет отловить момент, когда источник питания изменяется.

Теперь мы можем построить требую для нас логику. Предположим, что у нас есть два метода – StartWorkingHard() и StopWorkingHard(), которые запускают и останавливают запись GPS-трека. Тогда код для отслеживания источника питания может выглядеть так:

public MainPage()
{
	InitializeComponent();

	DeviceStatus.PowerSourceChanged += PowerSourceChanged;
	CheckPowerStatus();
}

private void PowerSourceChanged(object sender, EventArgs e)
{
	CheckPowerStatus();
}

private void CheckPowerStatus()
{
	if (DeviceStatus.PowerSource == PowerSource.Battery)
	{
		if (MessageBox.Show("Используется питание от батареи. Продолжить запись трека?", "Изменен источник питания", MessageBoxButton.OKCancel) == MessageBoxResult.OK)
		{
			StartWorkingHard();
		}
		else
			StopWorkingHard();
	}
	else
		StartWorkingHard();
}

private void StartWorkingHard()
{
}

private void StopWorkingHard()
{
}
21.10.2011 15:03 UTC+4

Сергей Звездин

Сергей Звездин

Сергей Звездин: занимается разработкой программного обеспечения на платформе Microsoft .NET. Является обладателем статусов Microsoft MVP и Microsoft Regional Director.

Читать дальше →

Записи

  • Архив
  • Обсуждаемые

Twitter

Most Valuable Professional (MVP) Microsoft Regional Director