xamarin形式的地理定位器
本文关键字:定位器 xamarin | 更新日期: 2023-09-27 18:06:13
我正在使用xamarin表单开发android应用程序。这里是我的代码,是用来获得纬度和经度。但是当我尝试使用模拟器时,它每次都有效,但移动设备有时有效,有时无效。请帮帮我。
var locator = Geolocator.Plugin.CrossGeolocator.Current;
locator.DesiredAccuracy = 50;
try
{
var locator2 = Geolocator.Plugin.CrossGeolocator.Current;
locator2.DesiredAccuracy = 50;
var position = await locator.GetPositionAsync(timeoutMilliseconds: 10000);
if (position == null)
{
return;
}
}
catch (Exception ex)
{
}
在这个页面https://developer.xamarin.com/guides/android/platform_features/maps_and_location/location/你可以看到
注意:设置ACCESS_FINE_LOCATION意味着同时访问粗定位数据和细定位数据。你不需要同时设置这两种权限,只需要设置应用运行所需的最小权限即可。
add this inside android mainactivity OnCreate()
Plugin.CurrentActivity.CrossCurrentActivity.Current.Activity = this;
添加到android mainactivity:
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);
}
则此代码将起作用,提示用户获得位置权限。
var locator = CrossGeolocator.Current;
locator.DesiredAccuracy = 1000;
var position = await locator.GetPositionAsync(timeoutMilliseconds: 10000);
是指:https://jamesmontemagno.github.io/GeolocatorPlugin/