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

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

2017.05.31 11:38

지니 조회 수:1579

안녕하세요.

델파이 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 17304
공지 유용한 관련 사이트 관리자2 2014.03.20 56188
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 99614
1819 Xe5에서 안드로이드 버전 얼마까지 지원되나요? [1] 농가사랑 2016.06.01 206
1818 안녕하세요. teeresou.res, teefonts.res 관련 질문 입니다. file 클라장이 2016.06.01 193
1817 부팅시 자동실행(브로드캐스트 리시버)예제를 따라하니 앱이 강제 종료됩니다. [1] file 김태윤 2016.06.01 788
1816 [질문]문장에서 원하는 단어 검색 하는 방법이 궁금합니다 [6] delphi 2016.06.02 3987
1815 안드로이드 디버깅이 재대로 실행되지 않습니다. [3] hsson 2016.06.03 417
1814 베를린 설치 후 시애틀에서 개발하던 소스 읽어들인후,, 코드 도움말 팝업 안됨.. 별땅땅쫑 2016.06.07 155
1813 다국어 사용시 에러 생기는 이유를 알려주세요 [3] silkroad99 2016.06.08 287
1812 델파이 프로페셔널버젼에서 로컬DB 개발작업이 가능한가요? [1] 드레곤 2016.06.09 278
1811 LiveBinding을 이용하여 DB와 Grid, Edit를 연결하고 DB에 변경된 데이터를 저장하는 방법 문의드립니다. [2] 기룬이 2016.06.09 718
1810 [시애틀]비콘을 안드로이드 서비스로 감지하는데 자꾸 응답없음으로 강제종료됩니다. [2] 김태윤 2016.06.09 537
1809 ios ,아이폰 mssql 2000 데이터접속시 한글깨짐 [4] file 텔로스김 2016.06.10 1087
1808 win8 에서 실행시키면 pagecontrol의 각 tab 부분이 하얗게만 나옵니다.(글자도 안나옴) [3] file 하얀돌 2016.06.10 903
1807 10 seattle 배포파일 생성이 되지 않습니다. [1] 이정규 2016.06.10 306
1806 델파이 10.1 베를린에 포함된 InterBaseXE7 문의 드립니다. [1] 짧굵 2016.06.10 214
1805 [베를린] 동일한 프로젝트를 베를린으로 빌드하면 세마포어 핸들이 증가합니다. 델사냥 2016.06.12 160
1804 개발구현 문의 [1] komi1 2016.06.14 118
1803 [시애틀]디버그 모드 진입 불가 [1] 김태윤 2016.06.14 410
1802 안드로이드 플랫폼에서 jpg, png파일 포맷 사용하려면 [2] superman 2016.06.15 749
1801 윈도우 8에서 10으로 업데이트 후 인터베이스 접속에 어려움을 겪고 있습니다. [1] file 손보라 2016.06.15 534
1800 Delphi XE7 설치 시 오류 발생의 건 [1] 최슬기 2016.06.15 325