자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)

Delphi 전화통화 중인지... 확인

2017.05.31 11:38

지니 조회 수:1592

안녕하세요.

델파이 10.2 트라리얼 버젼를 사용 중입니다.

 

안드로이드 스마트폰이 통화 중인지 아닌지.. 알려고 확인하려 합니다.

델파이 예제 중.. Phone Dialer 이 있는데..

이곳에.. 소스를 추가하여 통화중인지, 통화하는 중인지, 통화가 끝난건지.. 확인하려 하는데..

잘 안되는데.. 소스 확인 부탁드립니다.

 

unit uMain;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls, FMX.PhoneDialer,
  FMX.Platform, FMX.Edit, FMX.ListBox, FMX.Layouts, FMX.Controls.Presentation;

type
  TPhoneDialerForm = class(TForm)
    btnGetCarrierInfo: TButton;
    btnMakeCall: TButton;
    edtTelephoneNumber: TEdit;
    lblTelephoneNumber: TLabel;
    ToolBar1: TToolBar;
    Label1: TLabel;
    ListBox1: TListBox;
    CarrierNameItem: TListBoxItem;
    CountryCodeItem: TListBoxItem;
    NetworkCodeItem: TListBoxItem;
    MobileNetworkItem: TListBoxItem;
    lblCallState: TLabel;
    procedure btnGetCarrierInfoClick(Sender: TObject);
    procedure btnMakeCallClick(Sender: TObject);
    procedure MyOnCallStateChanged(const ACallID: String; const ACallState: TCallState);
  private
    { Private declarations }
    PhoneDialerService: IFMXPhoneDialerService;
  public
    { Public declarations }
    constructor Create(AOwner: TComponent); override;
  end;

var
  PhoneDialerForm: TPhoneDialerForm;

implementation

{$R *.fmx}

constructor TPhoneDialerForm.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  TPlatformServices.Current.SupportsPlatformService(IFMXPhoneDialerService, IInterface(PhoneDialerService));
  if Assigned(PhoneDialerService) then
    PhoneDialerService.OnCallStateChanged := MyOnCallStateChanged;
end;

procedure TPhoneDialerForm.MyOnCallStateChanged(const ACallID: String; const ACallState: TCallState);
var outText: String;
Begin
  case ACallState of
    TCallState.None:      outText := 'No calls';
    TCallState.Connected: outText := 'Connected';
    TCallState.Incoming:  outText := 'Incoming call';
    TCallState.Dialing:   outText := 'Dialing';
    TCallState.Disconnected: outText := 'Disconnected';
  end;

  lblCallState.Text := outText;
End;

procedure TPhoneDialerForm.btnGetCarrierInfoClick(Sender: TObject);
{var
  PhoneDialerService: IFMXPhoneDialerService;}

begin
  { test whether the PhoneDialer services are supported }
  if TPlatformServices.Current.SupportsPlatformService(IFMXPhoneDialerService, IInterface(PhoneDialerService)) then
  begin
    { if yes, then update the labels with the retrieved information }
    CarrierNameItem.ItemData.Detail := PhoneDialerService.GetCarrier.GetCarrierName;
    CountryCodeItem.ItemData.Detail := PhoneDialerService.GetCarrier.GetIsoCountryCode;
    NetworkCodeItem.ItemData.Detail := PhoneDialerService.GetCarrier.GetMobileCountryCode;
    MobileNetworkItem.ItemData.Detail := PhoneDialerService.GetCarrier.GetMobileNetwork;
  end
  else
    ShowMessage('PhoneDialer service not supported');
end;

procedure TPhoneDialerForm.btnMakeCallClick(Sender: TObject);
var
  PhoneDialerService: IFMXPhoneDialerService;

begin
  { test whether the PhoneDialer services are supported }
  if TPlatformServices.Current.SupportsPlatformService(IFMXPhoneDialerService, IInterface(PhoneDialerService)) then
  begin
    { if the Telephone Number is entered in the edit box then make the call, else
      display an error message }
    if edtTelephoneNumber.Text <> '' then
      PhoneDialerService.Call(edtTelephoneNumber.Text)
    else
    begin
      ShowMessage('Please type in a telephone number.');
      edtTelephoneNumber.SetFocus;
    end;
  end
  else
    ShowMessage('PhoneDialer service not supported');
end;

end.

번호 제목 글쓴이 날짜 조회 수
공지 [프로그래밍 강의] 2021.6~2021.12 관리자 2015.01.22 20072
공지 유용한 관련 사이트 관리자2 2014.03.20 58977
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 102605
1819 델파이에서 SDK 정보가 증발되는 버그 제보 및 안드로이드 빌드 시 Exec Error 해결방법입니다. [2] file 나즈나 2017.06.16 366
1818 모바일 폼 구성시 여러개 폼 생성 방법 [6] 수강생 2014.04.28 3115
1817 정현수님의 토스트 샘플로 공부중 동작하지 않아 질문입니다. [2] 나즈나 2017.06.14 143
1816 주소록 가져오는 셈플 테스트가 안됩니다. [1] 쿠리 2017.06.09 130
1815 [공유] 델파이 프로젝트에서 C로 작성된 소스와 해더 파일을 사용하고 싶어요. [1] 험프리 2017.06.12 207
1814 파이어몽키 scrollbox의 수평 스크롤 제어 [2] 화이부동 2017.06.12 548
1813 FCM 사용. [2] nazuna 2017.06.10 623
1812 BDE를 사용할 때의 DBTables, MSCommLib_TLB는 업그레이드할 때, 어떻게 해야하나요 [1] 공심이 2017.06.12 281
1811 델파이 시애틀로 ios 10버전의 기기 컴파일시 가능여부 [2] 김태윤 2017.06.12 216
1810 [공유] 모달 창이 간혹 다른 화면 뒤로 숨는 경우가 발생합니다. 무조건 최상위로 띄울 수 있는 방법이 있나요? 험프리 2017.06.12 958
» 전화통화 중인지... 확인 [1] 지니 2017.05.31 1592
1808 DBExpress 와 MySQL 연결관련 문의 [1] file 대화마을 2017.06.08 516
1807 DXE2 에서와 DXE10.2 에서 동작이 다릅니다. [1] file DarkRyu 2017.06.06 133
1806 FireDAC 프로시저로 리모트 서버 연결시 데이타가 프로그램을 종료해야 올라갑니다 아폴로 2017.06.05 205
1805 도쿄로 빌드된 앱을 최소화했다가, 기존 실행되었던 앱을 클릭하면 글자의 배경색이 없어집니다. [4] file 델사냥 2017.05.25 263
1804 Rest web server [6] nickname 2017.06.05 295
1803 FMX Edit 오류 패치 안되나요??? [2] 로로봉 2017.05.29 149
1802 FireDAC으로 Oracle 클라이언트 프로그램 배포시 [3] file 나도몰라 2017.05.29 953
1801 Datasnap Callback에서 문제 파란하늘 2017.06.01 137
1800 10.2 starter 언인스톨 문제 [3] 바람 2017.05.31 112