CoreLocation API는 20 개의 영역 (지오 펜스 영역과 결합 된)으로의 비콘 영역 모니터링을 제한하지만 사용자에게 알림을 보내기 위해 약 86 억 개의 서로 다른 비컨 위치를 찾을 수 있습니다.
네, 맞습니다. 86 억 - 85,899,345,920에 해당합니다. 충분히 생각하니?
간단한 기술은 비콘 모니터링 API를 비콘 측정 API와 결합하는 것입니다. 모니터링을 사용하면 비컨이 감지 될 때 백그라운드에서 앱을 깨울 수 있습니다. 그런 다음 범위 지정 API를 사용하여 탐지 된 정확한 비콘 식별자를 읽고 사용자에게 푸시 알림을 보낼 수 있습니다. 이것은 여전히 사용자의 주머니에 앉아있는 전화로 작동합니다.
각 신호 기호 식별자는 메이저 (0-63355)와 마이너 (0-63335)를 포함하므로 다른 ProximityUUID를 사용하여 최대 20 개의 신호 영역을 모니터링하고 20 x 65536 x 65536 = 85,899,345,920 다른 조합을 얻을 수 있습니다 .
let region = CLBeaconRegion.init(proximityUUID: UUID.init(uuidString: "2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6")!, identifier: "beacon_region1")
locationManager.startMonitoring(for: region)
locationManager.startRangingBeacons(in: region)
// TODO: repeat the above for up to 19 more regions
...
public func locationManager(_ manager: CLLocationManager, didRangeBeacons beacons: [CLBeacon], in region: CLBeaconRegion) {
for beacon in beacons {
var uuid = beacon.proximityUUID
var major = beacon.major
var minor = beacon.minor
// TODO: Send a unique local notification to the user for this
// uuid/major/minor combination identifying a particular place
}
}
이 방법에는 몇 가지 제한이 있습니다. 귀하의 비콘이 서로 겹치는 무선 범위 (~ 50 미터) 내에 배치되면 한 비컨이 잠시 동안 옆집에있는 사람이 비컨이 두 지역에 있지 않으면 배경 웨이크 업이 발생하지 않습니다. 이 제한을 극복하기 위해 게임을 할 수있는 게임이 있지만 많은 경우에는 걱정할 필요가 없습니다.
사용 사례가 있다면 도시 전체에서 수천 개의 표지를 갖고 싶습니다. 모니터링 지역/범위에서이 작업을 수행 할 수 있습니까? – user1721135
테스트해야 할 것이 있습니다. 문제는 백그라운드에서 문제없이 지역을 모니터링 할 수 있다는 것입니다. 레인 징 배경은 배경 시간을 요구할 때만 작동합니다. 수천 개의 표지 사이에 항상 입장/퇴장 콜백이 있으면 콜백을 받고 범위를 시작할 수 있습니다. 비콘 영역이 겹치면이 문제를 해결할 다른 영역이 있어야합니다. FYI : 외부에 수천 개의 표지가있는 경우 돈을 지출해야합니다. – Rags93
20 울타리 한도를 다루지 않아도되기 위해 비컨에 투자하는 것이 가치가 있다면, 기본적으로 파악하려고합니다. 그것은 그것 같이 확실히 소리가 나지 않는가? – user1721135