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

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

2017.05.31 11:38

지니 조회 수:1578

안녕하세요.

델파이 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 17255
공지 유용한 관련 사이트 관리자2 2014.03.20 56154
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 99578
333 데이터스냅(datasnap) 관련하여 질문드립니다. [1] file 루키 2019.12.10 269
332 델파이10.3.3에서 앱배포시 provisioning에 값만 넣으면 에러납니다. 델파이_사랑 2019.12.11 130
331 XE2에서 Cport4.11 사용 중 10.3.1Rio에서 Cport4.11 Install 이후 XE2 Cport 에러나요! [1] 알락투무빗무빗 2019.12.12 144
330 tcxgrid Custom Filter 사용시 체크 [1] 가나다 2019.12.12 484
329 sqlconnection 사용법을 알고 싶습니다. [1] 덩어리2 2019.12.14 197
328 bitmap 용량 줄여서 blob에 저장하기 [3] 종결자 2019.12.15 389
327 Firemonkey Stringgrid 표현 [1] 넓다란세상 2019.12.15 230
326 [베를린 10.1] 안드로이드앱에 Webbrowser 넣고 스트리밍 재생시.. 현동노 2019.12.15 110
325 안드로이드 이미지 공유시 문제 [1] 델마당쇠 2019.12.16 262
324 비콘 pky4437 2019.12.16 110
323 델파이 64비트에서 android:debuggable 옵션을 false 로 하는 방법 좀 가르쳐주세요. [1] 델파이_사랑 2019.12.16 231
322 모바일에서 datasnap을 이용해 데이터를 가져올때 [2] 종결자 2019.12.16 180
321 firedac으로 mssql 연결 쿼리시 속도가 너무 느림 [1] 빅비스 2019.12.19 452
320 MDI폼에서 팝업창 표시..? [2] 헨씀히포 2019.12.22 285
319 Tvalue의 데이터 관련 문의 건 [3] 한태수 2019.12.23 160
318 Delphi Rio 10.3.3 AAB 로컬서비스 실행시 문제점 해결 방법문의 [3] silkroad99 2019.12.23 349
317 Statusbar 의 Bevel 이 먹히지 않습니다. 오랜동안 2019.12.25 136
316 rio 10.3.3버전에서 다국어 작성중입니다. 봐주세요. [1] 델파이_사랑 2019.12.27 204
315 모바일에로 디버깅 또는 릴리즈 버전으로 컴파일 할 경우 [2] file 종결자 2020.01.02 167
314 안드로이드 ListView item background color 변경 하려면? [1] 델마당쇠 2020.01.03 595