xamarin - Xamarin.forms 无需在 Android 中使用拨号器即可拨打电话
问题描述
在我的 Xamarin.forms 应用程序中,我可以使用 Xamarin.Essential 插件拨打指定的电话号码。我面临的问题是,当我在 Android 中点击我的应用程序时,它会打开电话拨号器,用户应该手动点击呼叫。
在 iOS 中,它会直接拨打电话而无需使用拨号器。我的目的是防止编辑拨号器中的号码。
那么,如何在不进入拨号器的情况下拨打电话号码,而不是直接在android中显示呼叫屏幕?我看过很多帖子,但我没有任何想法。任何帮助表示赞赏。
我正在使用这样的 xamarin.Essential 插件拨打电话
PhoneDialer.Open(PhoneNumber.Text);
解决方案
要直接拨打电话,您可以使用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 添加到清单文件中。
推荐阅读
- git - git 多凭证助手
- php - Laravel:试图获取非对象的属性“”
- listview - 列表视图中的 Xamarin 表单列表视图
- python - matplotlib 旋转文本有一个偏移量
- alloy - 谓词中的世界生成问题
- java - RESTassured 导致 IOExceptions “现有连接被远程主机强行关闭” in undertow
- javascript - eslint 中的插件和扩展有什么区别?
- docker - 如何将 Jenkins 环境变量传递给 docker 容器?
- r - 是否在“sommer”包中使用 g()
- android - 在 kotlin 中具有不同视图类型的 Android recyclerview