使用Xamarin.Essentials来管理电话和短信

我很高兴在这里见到你在本教程中,我们将探讨Xamarin中两个非常重要的功能:如何管理电话拨号器和如何发送短信。我们将学习如何通过Xamarin.Essentials为我们提供的API来使用它们。?

如今,在我们的应用程序中整合电话和短信互动是非常有用的,这样做出来的产品至少能覆盖用户的基本功能。这样一来,用户就可以留在应用程序中,而不需要为了发信息或打电话而退出应用程序。

在过去,我们以前不得不添加两个NuGet包–一个用于通话,一个用于短信–这很复杂,也很耗时。现在,我们可以用更简单的方式创建一个电话拨号器。让我们先来解释一下如何使用电话拨号器,然后是短信。

什么是Xamarin.Essentials?

Xamarin.Essentials为你的移动应用程序提供了一个跨平台的开发者API,并允许我们在整个Xamarin Forms环境、Android、iOS或UWP中开发。

很好!那么Xamarin.Essentials提供了哪些功能/API?有几个,如短信、加速器、电话拨号器、偏好等。如果你想了解所有这些功能以及如何实现每个功能,我推荐这篇文章,在这里你会得到每个功能的特点指南。

在特定平台上设置Xamarin.Essentials

要知道,Xamarin.Essentials支持的最低版本是Android 4.4,对应于API级别19,但构建的目标Android版本必须是9.0或10.0,对应于API级别28和级别29。

如果你是最新版本,Xamarin.Essentials已经被添加到你的项目中,所以此时你不需要额外的配置。

如果你有一个旧版本,并且Xamarin.Essentials工作得不好,你可以在文档中检查你的实现是否一切正常

开始使用Xamarin.Essentials

? 平台设置

在某些情况下,每个平台都需要额外的设置以使实现有效。在这种情况下,只需要对Android进行配置。让我们来设置使用电话拨号器和短信所需的所有配置。

首先,从你的安卓项目中打开MainActivity.xml文件,在清单节点里面,添加以下代码。

? 电话拨号器。

<queries>
  <intent>
    <action android:name="android.intent.action.DIAL" />
    <data android:scheme="tel"/>
  </intent>
</queries>
复制代码

? 短信。

<queries>
  <intent>
    <action android:name="android.intent.action.VIEW" />
    <data android:scheme="smsto"/>
  </intent>
</queries>
复制代码

验证你的目标Android版本很重要。要做到这一点,只需遵循接下来的步骤。Configuration Steps To Setup Your Android Project With Phone Dialer And SMS

如上图所示,请应用以下步骤。

  1. 转到你的安卓项目
  2. 在项目中右键单击并进入选项
  3. 转到安卓应用
  4. 转到目标安卓版本,并将 “安卓9.0″(API级别28)设置为默认值

如果你的目标安卓版本设置为安卓11,你必须用新包可见性要求使用的查询来更新你的安卓清单。

iOS和UWP都不需要额外的设置。

用Xamarin.Essentials拨打电话

为了拨打电话,我们有一个PhoneDialer 类,它允许我们打开电话号码拨号器。

在内部,当我们使用这个API时,它会根据电话号码的来源国对其进行格式化,以便在电话键盘上显示出来。
Smartphone Number Dialer API

让我们看看要实现的结构。
Code For Phone Dialer And Color Legend Key

首先,我们创建一个可以接收电话号码参数的调用方法,其名称为PlacePhoneCall 。接下来,我们添加这个解释中最重要的类,也就是PhoneDialer 。这个类允许我们打开手机的数字键盘。

最后,通过Open 方法,我们添加我们希望在数字键盘被打开时显示的电话号码。(我们已经在名为PlacePhoneCall 的父方法中询问了这个信息)。

下面是代码示例。

public void PlacePhoneCall(string number)
 {
            PhoneDialer.Open(number);
 }

复制代码

完成了!我们的电话拨号器已经准备好了!?

用Xamarin.Essentials发送短信

SMS 类允许我们通过ComposeAsync 方法打开留言板,该方法接收一个SmsMessage 值作为参数。

短信接收主体和收件人的值,像这样。Smartphone SMS message composer

现在我们来看看图形结构。
Code For SMS Message And Color Legend Key

在这个例子中,我们创建了SendSms 方法,在这个方法中我们可以添加发送短信的类。我们将收到短信文本和收件人的参数。

在之前创建的方法中,我们添加了Sms 类,它负责用所需的文本打开留言板。

最后,我们添加了ComposeAsync 方法,它将接收你想要呈现的信息。请注意,我们使用的是一个异步方法。如果你想知道关于这个话题的更多信息,请查看这篇文章

⚠ 注意,消息变量的类型是SmsMessage ,它负责接收消息的文本。稍后,收件人将在ComposeAsync 方法中被发送。你将在下面添加的代码实现中看到这个例子。

这里有一个代码例子。

public async Task SendSms(string messageText, string recipient)
    {
            var message = new SmsMessage(messageText, new []{ recipient });
            await Sms.ComposeAsync(message);
     }
复制代码

如果你想向一个以上的用户发送短信,你可以!要做到这一点,你必须用一个字符串数组来改变参数类型。

public async Task SendSms(string messageText, string[] recipients)
    {
            var message = new SmsMessage(messageText, recipient );
            await Sms.ComposeAsync(message);
        }

复制代码

完成了!我们的短信已经准备好了!? 谢谢你的阅读!

The postUsing Xamarin.Essentials to manage phone calls and SMSappeared first onLogRocket Blog.

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享