C++Builder 实现监听手机通话状态

227 阅读1分钟

⒈头文件:

 

#include <FMX.Platform.hpp>

#include <FMX.PhoneDialer.hpp>

  // 本教程由 C++Builder 移动开发研究 (92227302) QQ群原创并群内首发,转载请注明出处,谢谢合作!

 

⒉私有变量:

 

_di_IFMXPhoneDialerService phoneDialerService;

bool serviceSupported;

 

⒊代码:

 

void __fastcall TForm1::MyOnCallStateChanged(const UnicodeString aCallID, const TCallState aCallState) {

****switch (aCallState) {

case TCallState::None:

Label1->Text = L"No calls 电话处于空闲状态 正等待接入 ";

break;

case TCallState::Connected:

Label1->Text = L"Connected 有电话打入 处于连接状态 ";

break;

case TCallState::Incoming:

Label1->Text = L"Incoming call 来电 ";

break;

case TCallState::Dialing:

Label1->Text = L"Dialing 电话在拨号状态 ";

break;

case TCallState::Disconnected:

Label1->Text = L"Disconnected 断开呼叫 ";

break;

}

}

void __fastcall TForm1::FormCreate(TObject *Sender)

{

serviceSupported = (TPlatformServices::Current->SupportsPlatformService(__uuidof(IFMXPhoneDialerService)) &&

(phoneDialerService = TPlatformServices::Current->GetPlatformService(__uuidof(IFMXPhoneDialerService))));

if (serviceSupported) {

phoneDialerService->OnCallStateChanged = MyOnCallStateChanged;

****}

 

}