首页 > 解决方案 > Xamarin.forms 无需在 Android 中使用拨号器即可拨打电话

问题描述

在我的 Xamarin.forms 应用程序中,我可以使用 Xamarin.Essential 插件拨打指定的电话号码。我面临的问题是,当我在 Android 中点击我的应用程序时,它会打开电话拨号器,用户应该手动点击呼叫。

在 iOS 中,它会直接拨打电话而无需使用拨号器。我的目的是防止编辑拨号器中的号码。

那么,如何在不进入拨号器的情况下拨打电话号码,而不是直接在android中显示呼叫屏幕?我看过很多帖子,但我没有任何想法。任何帮助表示赞赏。

我正在使用这样的 xamarin.Essential 插件拨打电话

PhoneDialer.Open(PhoneNumber.Text);

标签: xamarinxamarin.forms

解决方案


要直接拨打电话,您可以使用Xam.Plugins.Messaging库:

安装nuget后,在Android项目MainActivity的OnCreate方法中加入这一行:

CrossMessaging.Current.Settings().Phone.AutoDial = true;

现在您可以直接拨打任何电话,如下所示:

var phoneDialer = CrossMessaging.Current.PhoneDialer;
if (phoneDialer.CanMakePhoneCall)
   phoneDialer.MakePhoneCall("+27219333000");

请注意,使用此设置需要将 android.permission.CALL_PHONE 添加到清单文件中。


推荐阅读