由于 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): Currently does not have Location permissions, requesting permissionsCurrently does not have Location permissions, requesting permissions
Location permission denied, can not get positions async.10-08 19:52:50.103 I/mono-stdout( 2905): Location permission denied, can not get positions async.
如果我转到“配置”>“应用程序”>“权限”并授予位置权限,它会正常工作,但它不会在安装时请求权限。
代码:
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);
}
}
}
}
谁能看出我做错了什么?
我正在编写这段代码来获取 gps 位置,我已经 在 Android 属性上标记 ACCESS_COARSE_LOCATION 和 ACCESS_FINE_LOCATION 我还确认它是否在 AndroidManifest.xml 但应用程序正在终止:
10-08 19:52:50.048 I/mono-stdout( 2905): Currently does not have Location permissions, requesting permissionsCurrently does not have Location permissions, requesting permissions
Location permission denied, can not get positions async.10-08 19:52:50.103 I/mono-stdout( 2905): Location permission denied, can not get positions async.
如果我转到“配置”>“应用程序”>“权限”并授予位置权限,它会正常工作,但它不会在安装时请求权限。
代码:
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);
}
}
}
}
谁能看出我做错了什么?