Xamarin:发生地理位置错误:未经授权

编程入门 行业动态 更新时间:2024-10-28 20:21:40
本文介绍了Xamarin:发生地理位置错误:未经授权的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在尝试获取当前位置,并且正在UWP和iOS上运行,但是在Andriod上运行时,它显示了Unhandled Exception.

I'm trying to get the current location, and helpfully is working on UWP and iOS but when running it on Andriod it's showing Unhandled Exception.

Plugin.Geolocator.Abstractions.GeolocationException:发生地理位置错误:未经授权

我已经向我的android清单添加了权限,就像这样:

And I already added permissions to my android manifest and it's like this:

AndroidManifest.xml

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" /> <application android:label="Location1.Android"> <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="**googleAPI_KEY**" /> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />

AssemblyInfo.cs

using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using Android.App; [assembly: AssemblyTitle("Location1.Android")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("Location1.Android")] [assembly: AssemblyCopyright("Copyright © 2014")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] [assembly: UsesFeature("android.hardware.location", Required = false)] [assembly: UsesFeature("android.hardware.location.gps", Required = false)] [assembly: UsesFeature("android.hardware.locationwork", Required = false)] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: UsesPermission(Android.Manifest.Permission.Internet)] [assembly:UsesPermission(Android.Manifest.Permission.WriteExternalStorage)]

XAML

enter code here<?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="xamarin/schemas/2014/forms" xmlns:x="schemas.microsoft/winfx/2009/xaml" xmlns:local="clr-namespace:Location1" xmlns:maps="clr- namespace:Xamarin.Forms.Maps;assembly=Xamarin.Forms.Maps" x:Class="Location1.MainPage"> <StackLayout Orientation="Vertical"> <Button Text="Get GPS Position" Clicked="Button_Clicked" /> <Label Text="latitude" TextColor="Gray" FontSize="30" /> <Label x:Name="LatitudeLabel" TextColor="Gray" FontSize="50"></Label> <Label Text="Logitude" TextColor="Gray" FontSize="30" /> <Label x:Name="LongitudeLabel" TextColor="Yellow" FontSize="50"></Label> </StackLayout>

XAML代码

using Plugin.Geolocator; using System; using System.Collections.Generic; using System.Linq; using System.Text; using Xamarin.Forms; using Xamarin.Forms.Maps; using Plugin.Geolocator; namespace Location1 { public partial class MainPage : ContentPage { public MainPage() { InitializeComponent(); } private async void Button_Clicked(object sender, EventArgs e) { await GetLocation(); } private async Task GetLocation() { var locator = CrossGeolocator.Current; locator.DesiredAccuracy = 50; var position = await locator.GetPositionAsync(TimeSpan.FromSeconds(10000)); LongitudeLabel.Text = position.Longitude.ToString(); LatitudeLabel.Text = position.Latitude.ToString(); } } }

推荐答案

您是否也看到并做到了?

Did you also see and do this?

此插件利用权限插件,这意味着您必须添加 将以下代码添加到您的BaseActivity或MainActivity中 Xamarin.Forms:

This plugin leverages the Permission Plugin, which means you must add the following code to your BaseActivity or MainActivity in Xamarin.Forms:

添加活动:

public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Android.Content.PM.Permission[] grantResults) { Plugin.Permissions.PermissionsImplementation.Current.OnRequestPermissionsResult(requestCode, permissions, grantResults); base.OnRequestPermissionsResult(requestCode, permissions, grantResults); }

从文档此处.

更多推荐

Xamarin:发生地理位置错误:未经授权

本文发布于:2023-10-29 07:34:04,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1539093.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:未经授权   地理位置   错误   发生   Xamarin

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!