Получить уведомление о том, близко ли iOS устройство? - PullRequest
0 голосов
/ 30 апреля 2018

Это какой-либо протокол, который отмечает, когда устройство, находящееся близко к устройству, запускает одно и то же приложение, то есть устройство, на котором пользователь находится на той же станции? Могу ли я получить это с iBeacon? Похоже, приложение Apple Friends показывает в реальном времени положение пользователей, на которых я подписан. Можно ли узнать данные о близости?

Ответы [ 3 ]

0 голосов
/ 30 апреля 2018

Если вы имеете в виду обнаружение устройств iOS, расположенных близко друг к другу, это можно сделать с помощью маяков. Вы можете разместить маяк где-нибудь, и когда пользователь находится рядом с маяком и срабатывает didRangeBeacons, отправьте данные пользователя, полученные от didRangeBeacons (содержащие их расстояние от маяка и информацию маяка), на сервер, сделайте некоторые вычисления там и если рядом с маяком есть два устройства, отправьте им push-уведомление.

0 голосов
/ 07 мая 2018

Вы можете заставить свое приложение iOS рекламировать пакет iBeacon:

Превращение устройства iOS в iBeacon

А затем используйте API-интерфейсы ранжирования / мониторинга iBeacon из Базового местоположения для обнаружения других подобных «iBeacons» (= пользователей того же приложения) поблизости.

Еще одна опция - MultipeerConnectivity, которая работает примерно так же. У вас есть «рекламодатель», который передает информацию о присутствии вашего устройства всем, кто находится поблизости (через Bluetooth или Wi-Fi), и «браузер» для обнаружения таких устройств:

https://developer.apple.com/documentation/multipeerconnectivity

Оба они, как правило, не будут работать в фоновом режиме. Вы можете обнаружить iBeacon в фоновом режиме, но не можете рекламировать его в фоновом режиме. Вы можете использовать предварительно установленный сеанс MultipeerConnectivity в фоновом режиме, но не можете обнаруживать и устанавливать новые сеансы.

0 голосов
/ 30 апреля 2018

После сканирования и мониторинга областей маяка каждую секунду вы получаете маяки рядом с вами (в радиусе действия) в:

func locationManager(_ manager: CLLocationManager, didRangeBeacons beacons: [CLBeacon], in region: CLBeaconRegion) {
// here you can see every beacon that is in range
}

Чтобы увидеть расстояние между вами и маяком, откройте атрибут beacon.proximity и, если вас интересует уровень принятого сигнала, обратитесь к beacon.rssi.

...