代码在UWP中工作正常,但在Android中失败。在我的Try... Catch中收到错误“Specified method is not supported.”。根据@JamesMontemagno,此代码应该可以工作。有关应用程序的更多细节,请参阅https://www.youtube.com/watch?v=YZ-Yw9CRxAY。代码如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="SendEmail.MainPage">
<StackLayout>
<Frame BackgroundColor="#2196F3" Padding="24" CornerRadius="0">
<Label Text="Email Sample" HorizontalTextAlignment="Center" TextColor="White" FontSize="36"/>
</Frame>
<Button x:Name="SendEmail" Text="Send" Clicked="SendEmail_Clicked"></Button>
</StackLayout>
</ContentPage>
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Essentials;
using Xamarin.Forms;
namespace SendEmail
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
private async void SendEmail_Clicked(object sender, EventArgs e)
{
string body = "Test bowling message";
string[] to = { "[email protected]"};
//EmailAttachment attachment = new EmailAttachment(attach);
var message = new EmailMessage("Bowlers Scheduled for Week", body, to);
//message.Attachments.Add(attachment);
try
{
await Email.ComposeAsync(message);
}
catch (Exception ex)
{
//bool result = await DisplayAlert(ex.ToString(), "Send Email", "Yes", "No");
string msg = ex.Message;
}
}
}
}
字符串
1条答案
按热度按时间7qhs6swi1#
我测试了代码,它在我这边运行得很好。下面是你可能遇到的问题。
首先,如果项目的Target Android版本设置为Android 11(R API 30),则必须使用新package visibility requirements使用的查询更新Android Manifest。
请在manifest节点内添加以下内容:
字符串
第二,电子邮件。如果设备上没有电子邮件客户端应用程序可用于发送电子邮件,ComposeAsync将返回
FeatureNotSupportedException: 'Specified method is not supported.'
。您可以在手机上安装Gmail应用程序,当您单击按钮时,它将打开Gmail并发送电子邮件。