События геозоны не работают в симуляторе (Xamarin.ios)

У меня проблема с запуском событий геозоны на Xamarin.ios. Я помню, что раньше я использовал те же методы, что и раньше. Сейчас как-то не работает. Я использую следующий код, чтобы начать мониторинг:

CLLocationManager locMan = new CLLocationManager ();
locMan.RequestWhenInUseAuthorization ();
locMan.RequestAlwaysAuthorization ();
locMan.RegionEntered + = (sender, e) => {Console.WriteLine ("У вас есть вошел в регион »); };

locMan.RegionLeft + = (отправитель, e) => {Console.WriteLine («Вы покинули регион»); };

CLCircularRegion aRegion2 = новый CLCircularRegion (новый CLLocationCoordinate2D (30.432, 97.7360), 100, «яблочный тест»);
locMan.StartMonitoring (aRegion2);

И это один демонстрационный проект, в котором я пытаюсь протестировать события геозоны, но не работает: https://github.com/aproram/Xamarin_ios_geofence_issue_demo

Я тестирую изменение местоположения в меню симулятора (Debug-> locaiton-> custom location). Иногда я получаю это сообщение в выводе консоли при изменении местоположения:

[Клиент] #Spi, прервано

Среда разработки:
Visual Studio v8.1
Xamarin.iOS Версия: 12.10.0.153
xCode 10.1
Симулятор iphone 6s (ios 12.1)

Следует упомянуть, что я попытался протестировать геозону с помощью проекта xCode SWIFT, и события были запущены. Так что я не уверен, проблема в моем коде C # или VS ..


person Aproram    schedule 20.06.2019    source источник
comment
Привет, это работает на физическом устройстве? Попробуйте эту демонстрацию. developer.xamarin.com/samples/monotouch/CoreLocation   -  person Junior Jiang    schedule 21.06.2019
comment
@ JuniorJiang-MSFT есть ли способ имитировать изменение местоположения на физическом устройстве?   -  person Aproram    schedule 22.06.2019
comment
Есть способ, однако образец находится в Xcode Project. Вы можете создать файл gpx в проекте и поместить координаты, полученные из Google Maps, в этот файл и поместить их в корневой каталог проекта. Я не уверен, будет ли это работать в проекте Xamarin. Формат файла Gpx следующий. github.com/Dawnhan/SimulateLocation/blob/master/   -  person Junior Jiang    schedule 24.06.2019


Ответы (1)


сообщение о переполнении стека

Я не знаю, является ли это проблемой, с которой вы столкнулись, но вам нужно убедиться, что у вас есть все три ключа описания в вашем info.plist для чего-либо> iOS 11. Возможно, поэтому раньше это работало, но сейчас не работает.

Ключи следующие:

NSLocationAlwaysAndWhenInUseUsageDescription
NSLocationAlwaysUsageDescription
NSLocationWhenInUseUsageDescription

Есть видео WWDC, в котором рассказывается об изменениях в CoreLocation, которые появятся в iOS 13, так что это может измениться еще раз (я не помню подробностей об этом). iOS 13 CoreLocation Video

person Perry    schedule 06.09.2019