- 人气:
- 放大
- 缩小
- 二维码
- 赞赏
delphi Android 拨打电话
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都支持这些服务,但请记住,仍有一些移动设备的版本确实很旧,