可以在共享项目中的 Xamarin.Essentials 中调用拨号程序系统。
using Xamarin.Essentials;
private async void OnCall(object sender,EventArgs e)
{
var result =
await DisplayAlert("Dial a Number",
$"Would you like to call {translatedNumber} ?",
"Yes",
"No");
if (result)
{
//TODO: dial the phone
try
{
PhoneDialer.Open(translatedNumber);
}
catch (ArgumentNullException)
{
await DisplayAlert("Unable to dial","Phone nunmber was not valid","OK");
}
catch(FeatureNotEnabledException)
{
await DisplayAlert("Unable to dial","Phone dialing not supported","OK");
}
catch(Exception)
{
await DisplayAlert("Unable to dial","Phone dialong failed","OK");
}
}
}
许多仿真器和模拟器无法正确模拟拨打电话。 但 Android SDK 虚拟设备是个例外。 在其他模拟平台上,代码在尝试拨打电话时可能会引发异常。 如果发生这种情况,则可以注释掉拨打电话的代码,或将其包装在 try
/ catch
声明中。