提问人:Shades49 提问时间:11/10/2023 更新时间:11/10/2023 访问量:34
尝试通过 Xamarin 应用发送电子邮件...适用于 UWP,但使用 Andoid 失败 - 不支持指定的方法。附代码
Attempt to send email through Xamarin App...Works ok with UWP but fails with Andoid - Specified method is not supported. Code attached
问:
该代码在 UWP 中工作正常,但在 Android 中失败。在我的尝试中收到错误“不支持指定的方法”。抓住。根据 @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赞
Guangyu Bai - MSFT
11/10/2023
#1
我测试了代码,它在我这边运行良好。以下是您可能遇到的问题。
首先,如果项目的“目标 Android 版本”设置为“Android 11 (R API 30)”,则必须使用与新包可见性要求一起使用的查询更新 Android 清单。
请在清单节点内添加以下内容:
<queries>
<intent>
<action android:name="android.intent.action.SENDTO" />
<data android:scheme="mailto" />
</intent>
</queries>
其次,如果设备上没有可用于发送电子邮件的电子邮件客户端应用,Email.ComposeAsync 将返回。您可以在手机上安装Gmail应用程序,当您单击该按钮时,它将打开Gmail并发送电子邮件。FeatureNotSupportedException: 'Specified method is not supported.'
评论
0赞
Shades49
11/10/2023
Bingo,您的清单查询代码有效。我非常感激。谢谢。
评论