2014-12-11 3 views
3

В настоящее время я разрабатываю расширение часовых поясов. Кто-нибудь знает, предоставлено ли текущее местоположение iPhone или Watch? Я не могу найти информацию об этом, и мне нужно нарисовать компас, указывающий, где указывают часы.Использование Core Location в Apple WatchKit

ответ

3

Чтобы сделать то, что вы хотите, вам не нужен CoreLocation, вам нужен магнитометр.

AFAIK в компании Apple Watch не имеет один встроенный.

Датчики он имеет в ...

  • акселерометр
  • гироскоп
  • датчик сердечного ритма
  • Барометр

Магнитометр хоть.

+2

и никакой API для любого из этих датчиков. Тем не менее ... –

+0

Расширение watchkit работает внутри iphone, поэтому вы можете получить местоположение, используя это с помощью обычных средств. –

+0

@PeterSmith Они не хотят этого местоположения. Им нужно направление Север. Я не думаю, что есть способ определить направление телефона по сравнению с направлением просмотра. – Fogmeister

-1

Вы не можете использовать CoreLocation из расширения watchkit. Однако вы можете использовать api для открытия родительского приложения (в фоновом режиме) и попросить родительский api для получения информации. Апи очень приятно, потому что вы можете использовать его с ответом, так что вы можете легко получить информацию обратно:

+ (BOOL)openParentApplication:(NSDictionary *)userInfo reply:(void(^)(NSDictionary *replyInfo, NSError *error)) reply; // launches containing iOS application on the phone 
+2

Ссылка на CoreLocation может использоваться с расширения WatchKit, однако она не может запрашивать разрешения и наследует разрешения на размещение контейнера. 'openParentApplication:' сложно использовать то, как вы описываете, потому что ответ должен быть синхронным, но CoreLocation - это асинхронный API. – Sam

+0

@Sam 'openParentApplication: reply:' асинхронно - ваше приложение может вызвать обратный вызов в любое время. – s4y

+0

@ Сидственное право, это асинхронно.Не уверен, если бы я полностью переделал бета-версии 2 в то время - извините. – Sam

0

По словам Apple's Dev Documentation:

Лучшее решение для выполнения долго выполняющихся задач это позволить ваше приложение iOS выполняет задачу вместо этого. Например, вместо запуска служб определения местоположения в вашем расширении WatchKit запустите его в приложении iOS. Приложение iOS может собрать необходимые данные и поместить их в общую группу приложений, чтобы ваше расширение могло получить к нему доступ позже. Используйте метод openParentApplication: reply: для запуска задач и получения ответа или использования контейнера общей группы для обмена данными между вашим приложением iOS и расширением WatchKit. Информацию о том, как обрабатывать связь между вашим приложением iOS и расширением WatchKit, см. В разделе Прямая связь с вашим сотовым приложением iOS.

P.S. Я работаю над подобным приложением.

Смежные вопросы