为什么即使我的物理设备(OnePlus AC2001 Android11.0 - API-30)中具有该功能,也会抛出FeatureNotSupportedException?

Ani*_*wat 1 android xamarin xamarin.forms

我正在尝试实现Microsoft 的官方文档。当我尝试将号码输入拨号页面时,它会抛出异常,FeatureNotSupportedException 该异常按照文档说明

当尝试在不支持该功能的平台上使用该功能时发生的异常。

我使用的是 OnePlus AC2001 Android11.0 - API-30,我相信所有手机都必须包含拨号的基本功能PhoneDialer.Open(translatedNumber)

  async void OnCall(object sender, System.EventArgs e)
        {
            if (await this.DisplayAlert(
        "Dial a Number",
        "Would you like to call " + translatedNumber + "?",
        "Yes",
        "No"))
            {
                try
                {
                    PhoneDialer.Open(translatedNumber);
                }
                catch (ArgumentNullException)
                {
                    await DisplayAlert("Unable to dial", "Phone number was not valid.", "OK");
                }
                catch (FeatureNotSupportedException)
                {
                    await DisplayAlert("Unable to dial", "Phone dialing not supported.", "OK");
                }
                catch (Exception)
                {
                    // Other error has occurred.
                    await DisplayAlert("Unable to dial", "Phone dialing failed.", "OK");
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

Jas*_*son 5

你读过文档吗?

如果您的项目的目标 Android 版本设置为 Android 11 (R API 30),您必须使用符合新包可见性要求的查询来更新 Android 清单。

打开Properties文件夹下的AndroidManifest.xml文件,并在manifest节点中添加以下内容:

<queries>
  <intent>
    <action android:name="android.intent.action.DIAL" />
    <data android:scheme="tel"/>
  </intent>
</queries>
Run Code Online (Sandbox Code Playgroud)