我想找到这个位置。我实现了一切,但没有任何作用。
这是我的班级:
O(1)
我这样说:
public class Best2 : CLLocationManagerDelegate
{
public CLLocationManager _locationManager;
private Int32 _numEvento;
public Best2()
{
}
protected Best2(NSObjectFlag t) : base(t)
{
}
protected internal Best2(IntPtr handle) : base(handle)
{
}
public Best2(Int32 paramEvento)
{
_numEvento = paramEvento;
_locationManager = new CLLocationManager ();
_locationManager.PausesLocationUpdatesAutomatically = false;
_locationManager.DesiredAccuracy = CLLocation.AccurracyBestForNavigation;
if (UIDevice.CurrentDevice.CheckSystemVersion (9, 0)) {
_locationManager.AllowsBackgroundLocationUpdates = true;
}
_locationManager.Delegate = this;
StartLocationUpdates();
}
public void StartLocationUpdates ()
{
if (CLLocationManager.LocationServicesEnabled) {
_locationManager.RequestLocation();
System.Diagnostics.Debug.WriteLine(
String.Format(
"FA&)#2 RequestLocation() Data:D {0}"
, DateTime.UtcNow
)
);
}
}
public override void Failed (CLLocationManager manager, Foundation.NSError error)
{
System.Diagnostics.Debug.WriteLine(
String.Format(
"FA&)#2 Failed() Data:D {0}"
, DateTime.UtcNow
)
);
}
public override void UpdatedLocation (CLLocationManager manager, CLLocation newLocation, CLLocation oldLocation)
{
System.Diagnostics.Debug.WriteLine(
String.Format(
"FA&)#2 UpdatedLocation() Data:D {0}"
, DateTime.UtcNow
)
);
}
基于苹果documentation,我认为它应该调用方法失败如果不起作用, UpdatedLocation 如果有效。但没有任何东西在呼唤。
我已经尝试将类接收事件,但它也不起作用。
答案 0 :(得分:0)
根据有关Request Location的文档,我们知道如果我们想在iOS中使用位置,我们必须按照以下步骤操作:
NSLocationWhenInUseUsageDescription
密钥和NSLocationAlwaysAndWhenInUseUsageDescription
密钥添加到Info.plist文件中。NSLocationAlwaysUsageDescription
密钥添加到Info.plist文件中。 然后在RequestLocation()
之前,我们需要调用RequestAlwaysAuthorization()
或RequestWhenInUseAuthorization()
来获取用户的身份验证。
最后我们可以得到位置,但你误解了这个事件:
我认为它应该调用方法失败,如果不工作和 如果有效,则更新位置。
如果有效,则LocationsUpdated()
不会触发UpdatedLocation()
。