В настоящее время я разрабатываю расширение для Apple Watch. Кто-нибудь знает, предоставляется ли текущее местоположение самим iPhone или Watch? Я не могу найти никакой информации об этом, и мне нужно нарисовать компас, указывающий, куда указывают часы.
Использование основного местоположения в Apple WatchKit
Ответы (3)
Чтобы делать то, что вы хотите, вам не нужен CoreLocation, вам просто нужен магнитометр.
Насколько я знаю, Apple Watch не имеют встроенного.
Датчики у него такие...
- Акселерометр
- Гироскоп
- Датчик сердечного ритма
- Барометр
Но без магнитометра.
Согласно Документация Apple для разработчиков:
Лучшее решение для выполнения любых длительных задач — позволить вашему приложению iOS выполнять эту задачу. Например, вместо того, чтобы запускать службы определения местоположения в расширении WatchKit, запустите их в своем приложении для iOS. Ваше приложение iOS может собирать необходимые данные и помещать их в общую группу приложений, чтобы ваше расширение могло получить к ним доступ позже. Используйте метод openParentApplication:reply: для инициирования задач и получения ответа или используйте общий групповой контейнер для обмена информацией между вашим приложением iOS и расширением WatchKit. Для получения информации о том, как управлять связью между вашим приложением iOS и расширением WatchKit, см. раздел «Прямая связь с вашим приложением iOS, содержащим».
P.S. Я работаю над подобным приложением.
Вы не можете использовать CoreLocation из расширения watchkit. Однако вы можете использовать API, чтобы открыть родительское приложение (в фоновом режиме) и запросить информацию у родительского API. API действительно хорош, потому что вы можете использовать его с ответом, чтобы вы могли легко получить информацию обратно:
+ (BOOL)openParentApplication:(NSDictionary *)userInfo reply:(void(^)(NSDictionary *replyInfo, NSError *error)) reply; // launches containing iOS application on the phone
openParentApplication:
сложно использовать так, как вы описываете, потому что ответ должен быть синхронным, а CoreLocation — это асинхронный API.
- person Sam; 13.12.2014
openParentApplication:reply:
является асинхронным — ваше приложение может вызвать обратный вызов в любое время.
- person s4y; 17.03.2015