Namespaces

Variants
Actions

Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.

Управление индикатором сигнала

From Wiki
Jump to: navigation, search
Article Metadata

Пример кода
Исходный файл: Media:SignalIndicator src.zip

Статья
Автор: truf (04 Jan 2008)
Последнее редактирование: hamishwillee (10 Nov 2011)
== Индикатор сигнала ==

Индикатор сигнала - один из элементов панели статуса, расположенный в левой части экрана. Этот индикатор может отображать восемь уровней сигнала, называемых Level 0, Level 1 и т.д. до Level 7.

Signal.GIF
Рис 1. Восемь состояний индикатора сигнала.


В Symbian 2-й редакции, существует класс позволяющий пользователю контролировать состояние этого индикатора. Он находится в библиотеке aknnotify.lib и называется CAknSignalNotify.

Помимо прочего, CAknSignalNotify может быть использован для изменения состояний GPRS соединения.

Signal2.GIF
Рис 2. Состояния GPRS соединения.

CAknSignalNotify содержит следующие функции:

  • void SetSignalLevelL(TInt aLevel) - установка состояния индикатора. Аргумент aLevel может принимать значения от 0 до 7.
  • void SetGprsStateL() - установка состояния GPRS соединения.
  • void SetWcdmaStateL() - установка состояния WCDMA.
  • void SetCdmaStateL() - установка состояния CDMA.
  • void SetCommonPacketDataStateL() - установка состояния Common Packet Data.

Примечание: реализация функций SetWcdmaStateL(), SetCdmaStateL() и SetCommonPacketDataStateL() может отсутствовать на GSM телефонах. В этом случае попытка обращения к ним приведет к завершению работы приложения без сообщения об ошибке.

AknSignalNotify.h

#include <AknNotify.h>
 
class CAknSignalNotify : public CAknNotifyBase
{
public:
IMPORT_C static CAknSignalNotify* NewL();
IMPORT_C static CAknSignalNotify* NewLC();
IMPORT_C ~CAknSignalNotify();
 
IMPORT_C void SetGprsStateL(TInt aState);
IMPORT_C void SetSignalLevelL(TInt aLevel);
IMPORT_C void SetCommonPacketDataStateL(TInt aState);
IMPORT_C void SetWcdmaStateL(TInt aState);
IMPORT_C void SetCdmaStateL(TInt aState);
private:
CAknSignalNotify();
void ConstructL();
private:
IMPORT_C void CAknNotifyBase_Reserved();
};




Использование CAknSignalNotify

Изменения индикатора, вызванные экземпляром класса CAknSignalNotify, сохраняются до тех пор, пока его состояние не изменит система, или другой экземпляр CAknSignalNotify. Поэтому, его можно удалить сразу после использования. К примеру: следующий код установит индикатор сигнала в максимальное состояние (Level 7). Не забудьте подключить библиотеку aknnotify.lib к вашему проекту.


CAknSignalNotify* AknSignalNotify= CAknSignalNotify::NewLC();
AknSignalNotify->SetSignalLevelL(7);
CleanupStack::PopAndDestroy();


Примечание: вы можете объявить перечисление для использования в SetBatteryLevelL():


enum TSignalLevel 
{
ELevel0,
ELevel1,
ELevel2,
ELevel3,
ELevel4,
ELevel5,
ELevel6,
ELevel7
};

Аргумент функции SetGprsStateL() может принимать любое значение, но какой-либо эффект на индикатор оказывают следующие:

  1. Под линейкой уровня сигнала отображается антенна.
  2. Отображается символ G (GPRS attached).
  3. Мерцающий символ G.
  4. G в квадратике (GPRS Context).
  5. Зачеркнутое G (GPRS Suspended).
  6. G в квадратике подчеркнутое один раз.

Здесь вы можете скачать демонстрационным пример.

This page was last modified on 10 November 2011, at 03:13.
39 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×