簡體   English   中英

我的應用由於Android上的權限問題而終止

[英]My app is terminating due to permission issue on Android

我正在編寫此代碼以獲取gps位置,已在Android屬性上標記了ACCESS_COARSE_LOCATION和ACCESS_FINE_LOCATION,並且還確認它是否在AndroidManifest.xml中,但該應用程序正在終止:

10-08 19:52:50.048 I / mono-stdout(2905):當前沒有位置權限,正在請求權限當前沒有位置權限,正在請求權限

10-08 19:52:50.103 I / mono-stdout(2905):位置權限被拒絕,無法獲取位置異步。

如果我轉到“配置”>“應用程序”>“權限”並提供位置權限,則它可以正常工作,但在安裝時並沒有要求權限。

編碼:

using Plugin.Geolocator;
using Plugin.Geolocator.Abstractions;
using System;
using Xamarin.Forms;

namespace AppName
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
        }

        Position position;
        private async void GetPosition(object sender, EventArgs e)
        {
            try
            {
                var locator = CrossGeolocator.Current;
                locator.DesiredAccuracy = 50;
                position = await locator.GetPositionAsync(TimeSpan.FromSeconds(10));
            }
            catch(Exception)
            {
                throw;
            }
            finally { 
                LongitudeLabel.Text = string.Format("{0:0.0000000}", position.Longitude);
                LatitudeLabel.Text = string.Format("{0:0.0000000}", position.Latitude);
            }
        }
    }
}

誰能看到我在做什么錯?

從Android Marshmallow開始,您需要在清單中標記用戶以及向用戶請求權限。 這樣做將向用戶顯示提示,要求他們訪問他們可以允許或拒絕的資源(在這種情況下為位置)。 您應該有適當的代碼來處理這兩種情況。

Xamarin提供了有關如何做到這一點的一些文件在這里

編輯:也可以從Microsoft獲得更新的文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM