×
Namespaces

Variants
Actions

Управление индикатором вызова

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

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

Статья
Автор: truf (25 Nov 2007)
Последнее редактирование: hamishwillee (10 Nov 2011)

Индикатор вызова - иконка (иногда мерцающая, см. рис.), появляющаяся в правом верхнем углу экрана в том случае, если телефон не может отобразить полноценное окно вызова.

IncomingCallBubbleIcons.jpg

Различные индикаторы вызова.

Во 2-й редакции Symbian вы можете отобразить или скрыть этот индикатор, не зависимо от того, имеется ли входящий звонок или нет. Для этого вы должны воспользоваться классом CAknIncallBubble из aknnotify.lib. Заголовок для этого класса в SDK не включен, но используемое им перечисление TAvkonIncallStatusBubbleFlags доступно в avkon.hrh, а сам класс по структуре очень прост и полностью соответствует CAknPopupNotify, так что воссоздать его заголовочный файл не составляет большого труда.


Файл AknIncallBubble.h

// INCLUDES
#include <e32std.h>
#include <e32base.h>
#include <AknNotify.h>
 
 
/* CAknIncallBubble flags
* Bit Explanation
* 0 and 1 Call state
* 2 No Ciphering
* 3 Is muted
* 4 Is Visible
* 5 Is a Fax
* 6 Is a Data call
* 7 Is a Hscsd data call
* 8 Line 2 indication
* 9 Is a Video call
* 10 Is an emergency call
*/

 
/* Следующее перечисление можно найти в avkon.hrh:
 
enum TAvkonIncallStatusBubbleFlags
{
EAknStatusBubbleAlerting = 0x00, // One of
EAknStatusBubbleActive = 0x01, // these
EAknStatusBubbleOnHold = 0x02, // to set
EAknStatusBubbleDisconnected = 0x03, // the call state
EAknStatusBubbleNoCiphering = 0x04,
EAknStatusBubbleMuted = 0x08,
EAknStatusBubbleVisible = 0x10,
EAknStatusBubbleFax = 0x20,
EAknStatusBubbleData = 0x40,
EAknStatusBubbleDataHscsd = 0x80,
EAknStatusBubbleLine2 = 0x100,
EAknStatusBubbleVideo = 0x200,
EAknStatusBubbleEmergency = 0x400
};
*/

 
 
// CLASS DECLARATION
 
/**
* CAknIncallBubble
*
*/

class CAknIncallBubble : public CBase
{
public: // Constructors and destructor
 
IMPORT_C static CAknIncallBubble* NewL();
IMPORT_C static CAknIncallBubble* NewLC();
IMPORT_C ~CAknIncallBubble();
 
IMPORT_C void SetIncallBubbleFlagsL(int aMessage);
 
private:
CAknIncallBubble();
void ConstructL();
 
IMPORT_C void CAknNotifyBase_Reserved();
 
};

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

Подключите AknIncallBubble.h к своему проекту, и используйте следующий код:

CAknIncallBubble* IncallBubble = CAknIncallBubble::NewLC();
IncallBubble->->SetIncallBubbleFlagsL(EAknStatusBubbleVisible | EAknStatusBubbleAlerting);
CleanupStack::PopAndDestroy(IncallBubble);

Демонстрационный проект

IncallBubbleSample.jpg

Здесь находится демонстрационный проект, позволяющий поэксперементировать с различными флагами CAknIncallBubble.

This page was last modified on 10 November 2011, at 06:12.
43 page views in the last 30 days.