Читаем Программирование КПК и смартфонов на .NET Compact Framework полностью

Для закрепления материала нужно дополнить программу еще несколькими примерами получения различных свойств. Можно добавить отображение уровня заряда батареи, текущего состояния батареи, наличия радиоприемника и фотокамеры, названия сотового оператора и определение текущей ориентации экрана. Все это делает код, приведенный в листинге 10.15.

Листинг 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.

Перейти на страницу:

Похожие книги

C++ Primer Plus
C++ Primer Plus

C++ Primer Plus is a carefully crafted, complete tutorial on one of the most significant and widely used programming languages today. An accessible and easy-to-use self-study guide, this book is appropriate for both serious students of programming as well as developers already proficient in other languages.The sixth edition of C++ Primer Plus has been updated and expanded to cover the latest developments in C++, including a detailed look at the new C++11 standard.Author and educator Stephen Prata has created an introduction to C++ that is instructive, clear, and insightful. Fundamental programming concepts are explained along with details of the C++ language. Many short, practical examples illustrate just one or two concepts at a time, encouraging readers to master new topics by immediately putting them to use.Review questions and programming exercises at the end of each chapter help readers zero in on the most critical information and digest the most difficult concepts.In C++ Primer Plus, you'll find depth, breadth, and a variety of teaching techniques and tools to enhance your learning:• A new detailed chapter on the changes and additional capabilities introduced in the C++11 standard• Complete, integrated discussion of both basic C language and additional C++ features• Clear guidance about when and why to use a feature• Hands-on learning with concise and simple examples that develop your understanding a concept or two at a time• Hundreds of practical sample programs• Review questions and programming exercises at the end of each chapter to test your understanding• Coverage of generic C++ gives you the greatest possible flexibility• Teaches the ISO standard, including discussions of templates, the Standard Template Library, the string class, exceptions, RTTI, and namespaces

Стивен Прата

Программирование, программы, базы данных