MAUI Email.ComposeAsync 函数调用在 Android 上抛出 FeatureNotSupportedException

问题描述 投票:0回答:1

我即将在 Google Play 上发布应用程序,但我的包因使用此权限而被拒绝:

<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" /> 

我将此权限包含在 AndroidManifest.xml 中,因为如果没有它,调用 Email.ComposeAsync 函数将导致出现 FeatureNotSupportedException。

        var message = new EmailMessage
        {
            Subject = $"Új funkció kérése / Hiba bejelentés ({AppInfo.AppName} {AppInfo.AppVersion})",
            Body = "Tisztelt Szoftverfejlesztő!\r\n\r\nKérés / hiba leírása...\r\n\r\nÜdvözlettel\r\n\r\n",
            To = [AppInfo.AppEmail],
            BodyFormat = EmailBodyFormat.PlainText
        };
        
        if (!String.IsNullOrEmpty(AppInfo.DevEmail))
        {
            message.Bcc = [AppInfo.DevEmail];
        }

        //await Email.Default.ComposeAsync(message).ConfigureAwait(false);
        await Email.ComposeAsync(message).ConfigureAwait(false);

我检查了文档,它没有指定我应该为该函数调用添加哪个权限才能工作,或者为什么它需要 QUERY_ALL_PACKAGES 权限。

以下是例外详情:

Microsoft.Maui.ApplicationModel.FeatureNotSupportedException

  • 消息:不支持指定的方法。

调用堆栈:

  • 0xFFFFFFFFFFFFFFFF
    Android.Runtime.RuntimeNativeMethods.monodroid_debugger_unhandled_exception
    C#
  • 0x1A
    Android.Runtime.JNINativeWrapper._unhandled_exception
    /Users/runner/work/1/s/xamarin-android/src/Mono.Android/Android.Runtime/JNINativeWrapper.g.cs:13,5
    C#
  • 0x1D
    Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PP_V
    /Users/runner/work/1/s/xamarin-android/src/Mono.Android/Android.Runtime/JNINativeWrapper.g.cs:27,26
    C#
  • 0x17
    System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw
    C#
  • 0x6
    System.Threading.Tasks.Task.<>c.<ThrowAsync>b__128_0
    C#
  • 0xC
    Android.App.SyncContext.<Post>b__8_0
    /Users/runner/work/1/s/xamarin-android/src/Mono.Android/Android.App/SyncContext.cs:36,19
    C#
  • 0xE
    Java.Lang.Thread.RunnableImplementor.Run
    /Users/runner/work/1/s/xamarin-android/src/Mono.Android/Java.Lang/Thread.cs:36,6
    C#
  • 0x8
    Java.Lang.IRunnableInvoker.n_Run
    /Users/runner/work/1/s/xamarin-android/src/Mono.Android/obj/Release/net8.0/android-34/mcw/Java.Lang.IRunnable.cs:84,4
    C#
  • 0x8
    Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PP_V
    /Users/runner/work/1/s/xamarin-android/src/Mono.Android/Android.Runtime/JNINativeWrapper.g.cs:26,5
    C#

最好的方法是避免使用 QUERY_ALL_PACKAGES 权限。有可能这样做吗?

android email permissions maui
1个回答
0
投票

根据docs,您需要将其添加到Android清单中

<queries> 
  <intent> 
    <action android:name="android.intent.action.SENDTO" /> 
    <data android:scheme="mailto" /> 
  </intent> 
</queries>
© www.soinside.com 2019 - 2024. All rights reserved.