相关疑难解决方法(0)

如何检查 Xamarin Forms 中的定位服务是否“开启”?

我的应用程序适用于位置。所以我需要打开定位服务。我看到有关在iOS平台上检查位置服务状态的问题,但是有没有办法在共享项目中检查这一点?

我正在寻找一种事件类型解决方案,如果用户关闭位置服务,应用程序将停止正在执行的操作并要求用户再次打开位置。

c# service location xamarin xamarin.forms

5
推荐指数
1
解决办法
2009
查看次数

C# .Net 7 Maui 中的 Android API 33 存储权限被拒绝

我试图让应用程序用户选择一个文件夹来保存从相机拍摄的照片。如果我需要使用与我正在使用的不同的 NuGet 包或内置功能,我可以这样做。我使用的是我发现的第一个有文件夹选择器并且我可以开始工作的。

我阅读了数十篇文章、答案、问题、技术文档、演练、观看视频等,尝试访问并选择要保存相机图像的文件夹。不幸的是,似乎没有任何效果,因为我不断收到异常,说我没有“存储”权限,尽管我已经尝试了多种方法来获取它们。我还请求几乎所有与“存储”相关的权限,甚至是我认为不是真正权限的权限,但在我读过的其中一份文档中引用了它。

这适用于运行 Android 9 (API 28) 和 Android 12 (API 31) 的 2 台真实设备,但不适用于 Android 13 (API 33) 设备。我正在为FolderPicker使用最新的CommunityToolkit NuGet 包。

查看专门针对该应用程序的权限,“拒绝”部分中没有列出任何权限。

我知道这与我检查权限的自定义方式无关,因为我使用它来请求蓝牙和其他权限

靠近底部的“FolderPickerResult”代码行返回异常。它不会抛出它,而是将其返回到“结果”对象/变量。异常消息是“未授予存储权限”。

这是返回的整个对象:

{
    FolderPickerResult {
        Folder = ,
        Exception = Microsoft.Maui.ApplicationModel.PermissionException: Storage permission is not granted.at CommunityToolkit.Maui.Storage.FolderPickerImplementation.InternalPickAsync(String initialPath, CancellationToken cancellationToken)in / _ / src / CommunityToolkit.Maui.Core / Essentials / FolderPicker / FolderPickerImplementation.android.cs: line 18 at CommunityToolkit.Maui.Storage.FolderPickerImplementation.PickAsync(String initialPath, CancellationToken cancellationToken)in / _ / src / CommunityToolkit.Maui.Core / Essentials / FolderPicker / FolderPickerImplementation.shared.cs: …
Run Code Online (Sandbox Code Playgroud)

c# android maui

5
推荐指数
1
解决办法
2860
查看次数

.NET MAUI - “必须在主线程上调用权限请求”

我很困惑,如果需要异步,我应该如何在 Android 应用程序的主线程上请求权限访问。我想在我的应用程序打开后立即执行此操作,但我收到以下错误:"Permission request must be invoked on main thread."我该如何执行此操作?我的理解是,这RequestAsync需要一个单独的线程(因为它是一个异步方法调用)。

public partial class SplashPage : ContentPage
{
    PermissionStatus LocationPermission;

    public SplashPage()
    {
        InitializeComponent();
        LocationPermission = PermissionStatus.Unknown;
    }

    protected override void OnAppearing()
    {
        var result = Task.Run(async () => await CheckLocationPermission());
        result.Wait();
        var resultval = result.Result;

        result = Task.Run(async () => await RequestLocationPermission());
        result.Wait();
    }

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

    public async Task<PermissionStatus> RequestLocationPermission()
    {
        try
        {
            if (LocationPermission == …
Run Code Online (Sandbox Code Playgroud)

c# android maui

3
推荐指数
1
解决办法
1834
查看次数

标签 统计

c# ×3

android ×2

maui ×2

location ×1

service ×1

xamarin ×1

xamarin.forms ×1