Maui C# - 异步请求电话位置权限

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

我想我可能在这里混淆了一个基本的异步概念。我有一个主要方法,我想在执行任何其他操作之前获得电话权限。这里看起来很奇怪,因为我知道我需要等待,因为在代码中使用了

async
方法,但我也知道我想在做任何其他事情之前等待,所以我在
Wait
上标记了我的代码:

namespace CellularSignal1;

public partial class SplashPage : ContentPage
{
    public SplashPage()
    {
        InitializeComponent();

        var perm = Task.Run(async () => await Permission.CheckLocationPermission()).Wait();

        // do something with perm
    }
}

public static class Permission
{
    public static PermissionStatus LocationPermission = PermissionStatus.Denied;

    public static Task<PermissionStatus> CheckLocationPermission()
    {
        return await Permissions.CheckStatusAsync<Permissions.LocationWhenInUse>();
    }
}

我现在所拥有的似乎违背了异步的目的,因为我在最后添加了

.Wait()
。最终,我想要做的就是在不阻塞 UI 线程的情况下获取位置权限,但还要等到我可以获取
perm
。 SplashPage 是我的主要课程页面,所以我不认为我也想使其异步。我的问题是,有没有更好的方法来做到这一点?

android asynchronous maui
© www.soinside.com 2019 - 2024. All rights reserved.