【发布时间】:2016-11-03 09:39:24
【问题描述】:
我的应用程序中有一个扫描仪,当我扫描任何二维码时,我需要以经纬度获取设备的当前位置。我不知道如何获取位置,所以我现在没有任何代码。建议我一些在扫描完成 QR 码时获取位置的方法。
【问题讨论】:
标签: c# location xamarin.forms xamarin-studio
我的应用程序中有一个扫描仪,当我扫描任何二维码时,我需要以经纬度获取设备的当前位置。我不知道如何获取位置,所以我现在没有任何代码。建议我一些在扫描完成 QR 码时获取位置的方法。
【问题讨论】:
标签: c# location xamarin.forms xamarin-studio
地理定位器插件示例:
var locator = CrossGeolocator.Current;
locator.DesiredAccuracy = 50;
var position = await locator.GetPositionAsync (timeoutMilliseconds: 10000);
Console.WriteLine ("Position Status: {0}", position.Timestamp);
Console.WriteLine ("Position Latitude: {0}", position.Latitude);
Console.WriteLine ("Position Longitude: {0}", position.Longitude);
【讨论】:
ACCESS_COARSE_LOCATION 和 ACCESS_FINE_LOCATION
对于对这个位置的东西感到困惑的每个人,我建议使用 Xamarin Essentials 而不是上面提到的插件。
var location = await Geolocation.GetLastKnownLocationAsync();
if (location != null)
{
MyLocation = location;
if (!ShowUserLocation)
ShowUserLocation = true;
}
【讨论】:
我推荐 Xamarin Essentials。 查看这篇文章并检查您的权限。 https://docs.microsoft.com/en-us/xamarin/essentials/geolocation?tabs=android
var Latitude;
var Longitude;
var request = new GeolocationRequest(GeolocationAccuracy.Best);
var location = await Geolocation.GetLocationAsync(request);
if (location != null)
{
if (location.IsFromMockProvider)
{
//Put a message if detect a mock location.
}else
{
Latitude=location.Latitude;
Longitude=location.Longitude;
}
}
【讨论】: