频道分类

Delphi Android 拨打电话

作者:admin 来源: 日期:2020/11/12 9:47:24 人气: 标签:

 
Delphi Android电话
市场上有许多类型的移动设备应用程序,尤其是将来的应用程序。

我最近遇到的挑战之一是,一位客户问我,从他的应用程序中,用户可以拨打公司电话,也可以拨打电话。

在第一种情况下,我发现拨打电话需要CALL_PHONE权限,这是一个危险的权限(因为它可以通过拨打电话产生费用),因此需要Application用户的显式权限。(我们通过上面的链接向您展示了如何请求)

然后,该主题得以简化,因为Delphi为我们提供了一个处理Phone,FMX.PhoneDialer的单元。

电话示例
在下面的示例中,我们提出一个问题,以便用户知道将要进行呼叫,如果用户回答“是”,则进行呼叫。

Uses
  FMX.PhoneDialer;
 
private
  { Private declarations }
  PhoneDialerService: IFMXPhoneDialerService; // Servicio Phone Dialer
 
procedure PhoneCall;
begin
  if TPlatformServices.Current.SupportsPlatformService(IFMXDialogServiceASync, IInterface(ASyncService)) then
  begin
    ASyncService.MessageDialogAsync('要打电话吗?', TMsgDlgType.mtConfirmation,
      [TMsgDlgBtn.mbYes, TMsgDlgBtn.mbNo], TMsgDlgBtn.mbNo, 0,
      procedure(const AResult: TModalResult)
      begin
        case AResult of
          mrYES:
            begin
              if TPlatformServices.Current.SupportsPlatformService(IFMXPhoneDialerService, IInterface(PhoneDialerService)) then
                PhoneDialerService.Call('13500000000')
              else
                ShowMessage('不支持的电话.');
            end;
        end;
      end);
  end;
end;
请注意:如果您看到前面的示例,则在使用PhoneDialerService.Call方法('13500000000')进行呼叫之前,我们将检查Android版本是否支持该服务,并在TPlatformServices.Current.SupportsPlatformService所在行中对其进行检查(IFMXPhoneDialerService,IInterface(PhoneDialerService))然后。

我们知道,所有新版本的Android都支持这些服务,但请记住,仍有一些移动设备的版本确实很旧,

上一篇:Delphi获取Android上的IMEI下一篇:没有资料