Join Now
Quality Rating:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)
Expertise Level:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)

This page was last modified 06:02, 5 January 2008.

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

From Forum Nokia Wiki

Индикатор сигнала

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

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


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

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

Image: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 в квадратике подчеркнутое один раз.

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

Related Discussions
Thread Thread Starter Forum Replies Last Post
we want devcert's with allfiles and TCB! Santehnik Symbian Signing, Certification and Security 90 2007-02-16 18:09
RSendAsMessage - передача файлов по Bluetooth Den123 Russian Developer Forum - Форум Российских разработчиков 2 2008-03-06 17:28
Акселерометр Den123 Russian Developer Forum - Форум Российских разработчиков 14 2007-12-10 05:45
Запись звука без Bееp'а во время разговора UGreek Russian Developer Forum - Форум Российских разработчиков 6 2007-12-25 12:45
Оффтоп Cagemts Russian Developer Forum - Форум Российских разработчиков 107 2008-06-24 16:48
 
Powered by MediaWiki
     
     RDF Facets:
     
     
     qfnZtypeQUqfnTypeZCommunityContentQ
     qfnZtypeQUqfnTypeZWebpageQ
     qfnZtypeQUqfnTypeZWikiContentQ
     qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX