Для закрепления материала нужно дополнить программу еще несколькими примерами получения различных свойств. Можно добавить отображение уровня заряда батареи, текущего состояния батареи, наличия радиоприемника и фотокамеры, названия сотового оператора и определение текущей ориентации экрана. Все это делает код, приведенный в листинге 10.15.
private void butGetInfo_Click(object sender, EventArgs e) {
lstInfo.Items.Add("Название оператора: " + SystemState.PhoneOperatorName);
lstInfo.Items.Add("Наличие радио: " + SystemState.PhoneRadioPresent);
lstInfo.Items.Add("Наличие камеры: " + SystemState.CameraPresent);
lstInfo.Items.Add("Ориентация экрана " + SystemState.DisplayRotation);
}
private void butBattery_Click(object sender, EventArgs e) {
// Уровень заряда батареи
BatteryLevel batteryLevel = SystemState.PowerBatteryStrength;
BatteryState batteryState = SystemState.PowerBatteryState;
string strBatteryLevel = "Уровень заряда";
switch (batteryLevel) {
case BatteryLevel.VeryLow:
strBatteryLevel = "Уровень заряда: Очень низкий (0-20%)";
break;
case BatteryLevel.Low:
strBatteryLevel = "Уровень заряда: Низкий (21-40%)";
break;
case BatteryLevel.Medium:
strBatteryLevel = "Уровень заряда: Средний (41-60%)";
break:
case BatteryLevel.High:
strBatteryLevel = "Уровень заряда: Высокий (61-80%)";
break;
case BatteryLevel.VeryHigh:
strBatteryLevel = "Уровень заряда: Очень высокий (81-100%)";
break;
}
// Состояние батареи
string strBatteryState = "Состояние батареи: ";
if ((batteryState & BatteryState.Normal) == BatteryState.Normal)
strBatteryState += "Нормальное";
if ((batteryState & BatteryState.NotPresent) == BatteryState.NotPresent)
strBatteryState += "Батарея отсутствует ";
if ((batteryState & BatteryState.Charging) == BatteryState.Charging)
strBatteryState += "Заряжается ";
if ((batteryState & BatteryState.Low) == BatteryState.Low)
strBatteryState += "Низкий заряд ";
if ((batteryState & BatteryState.Critical) == BatteryState.Critical)
strBatteryState += "Критическое";
MessageBox.Show(strBatteryLevel + "\n" + strBatteryState);
}
Мультимедиа
Система Windows Mobile 5.0 обеспечивает еще более глубокую поддержку мультимедиа, чем предыдущие версии операционных систем. Теперь разработчики имеют возможность напрямую работать с фотокамерой, встраивая в свои программы взаимодействие с камерой и обработку картинок и видеороликов. Технология Microsoft DirectShow дает возможность управлять потоковыми мультимедийными материалами. Программа Microsoft Windows Media Player 10 Mobile позволяет интегрировать функциональность музыкального плеера в собственные приложения. Технология Microsoft DirectDraw предоставляет доступ к графической системе на более высоком уровне, а библиотека Microsoft Direct3D позволяет создавать очень сложные динамические игры, используя управляемый код. Эти возможности стоит рассмотреть подробнее.
Выбор изображения
В операционной системе Windows Mobile 5.0 стало поразительно легко работать с коллекцией фотографий и рисунков. При помощи стандартного диалогового окна выбора рисунка можно легко выбрать нужный рисунок. Доступ к стандартному окну выбора рисунка осуществляется при помощи класса Microsoft.WindowsMobile.Forms.SelectPictureDialog
.