This page was last modified 19:19, 1 January 2008.
Получение номера звонящего
From Forum Nokia Wiki
Перевод с английского, оригинальная статья находится здесь.
Этот пример демонстрирует получение телефонного номера звонящего. Приводятся варианты для Symbian 3-й редакции и старших платформ.
Для телефонов на базе S60 1-й и 2-й редакций
#include <etelmm.h> void GetRemotePartyPhoneNumberL(TDes& aPhoneNumber) { RTelServer etel; // Подключение к серверу ETel User::LeaveIfError(etel.Connect()); CleanupClosePushL(etel); // Загрузка модуля телефона. Это делается из предосторожности // т.к. он уже должен быть загружен _LIT(KTsyName, "phonetsy.tsy"); User::LeaveIfError(etel.LoadPhoneModule(KTsyName)); RTelServer::TPhoneInfo phoneInfo; // Получение информации о телефоне. // Нам требуется название телефона для того, чтобы получить к нему доступ const TInt KPhoneIndex = 0; User::LeaveIfError(etel.GetPhoneInfo(KPhoneIndex, phoneInfo)); RPhone phone; // Получение доступа к телефону User::LeaveIfError(phone.Open(etel, phoneInfo.iName)); CleanupClosePushL(phone); RPhone::TLineInfo lineInfo; // Получение информации о линии связи. // Нам требуется название линии, чтобы получить к ней доступ const TInt KLineIndex = 0; User::LeaveIfError(phone.GetLineInfo(KLineIndex, lineInfo)); RLine line; // Получение доступа к линии связи User::LeaveIfError(line.Open(phone, lineInfo.iName)); CleanupClosePushL(line); RLine::TCallInfo callInfo; // Получение информации о звонке. // Нам требуется название звонка, чтобы получить к нему доступ. const TInt KCallIndex = 0; User::LeaveIfError(line.GetCallInfo(KCallIndex, callInfo)); RMobileCall call; // Получение доступа к звонку User::LeaveIfError(call.OpenExistingCall(line, callInfo.iCallName)); CleanupClosePushL(call); RMobileCall::TMobileCallInfoV1 mobCallInfo; RMobileCall::TMobileCallInfoV1Pckg mobCallInfoPckg(mobCallInfo); // Получение информации о звонке User::LeaveIfError(call.GetMobileCallInfo(mobCallInfoPckg)); // Мы успешно получили информацию о звонке. // Теперь скопируем телефонной номер удаленной стороны в дескриптор aPhoneNumber.Copy(mobCallInfoPckg().iRemoteParty.iRemoteNumber.iTelNumber); // Закрываем все хэндлы CleanupStack::PopAndDestroy(4); // call, line, phone, etel }
Для телефонов на базе S60 3-й редакции
void GetRemotePartyPhoneNumberL(TDes& aPhoneNumber) { // Создаем экземпляр класса CTelephony CTelephony* telephony = CTelephony::NewLC(); CTelephony::TCallInfoV1 callInfoV1; CTelephony::TCallInfoV1Pckg callInfoV1Pckg(callInfoV1); CTelephony::TCallSelectionV1 callSelectionV1; CTelephony::TCallSelectionV1Pckg callSelectionV1Pckg(callSelectionV1); CTelephony::TRemotePartyInfoV1 remotePartyInfoV1; CTelephony::TRemotePartyInfoV1Pckg remotePartyInfoV1Pckg(remotePartyInfoV1); callSelectionV1.iLine = CTelephony::EVoiceLine; callSelectionV1.iSelect = CTelephony::EInProgressCall; // Получаем информацию о звонке User::LeaveIfError(telephony->GetCallInfo(callSelectionV1Pckg, callInfoV1Pckg, remotePartyInfoV1Pckg)); // Копируем телефонной номер удаленной стороны в дескриптор aPhoneNumber.Copy(remotePartyInfoV1Pckg().iRemoteNumber.iTelNumber); CleanupStack::PopAndDestroy(); // telephony }
Внутренние ссылки
| Related Discussions | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| для чего нужны "Key pairs"? | nova_onespirit | Russian Developer Forum - Форум Российских разработчиков | 4 | 2008-01-28 10:34 |
| Проблемы с CaptureKeyXXXXX | truf | Russian Developer Forum - Форум Российских разработчиков | 1 | 2008-02-07 12:16 |
| Программирование под Symbian OS. Ресурсы, литература (только легальные ссылки!) | ivey | Russian Developer Forum - Форум Российских разработчиков | 18 | 2008-08-27 06:40 |
| RChunk::Open(), KErrPermissionDenied | JBAK | Russian Developer Forum - Форум Российских разработчиков | 11 | 2008-01-22 10:02 |
| Исходящий звонок | truf | Russian Developer Forum - Форум Российских разработчиков | 7 | 2008-02-12 10:22 |
