수색…


매개 변수

매개 변수 세부
매니저 CLLocationManager 참조
부위 CLRegion은 원형 영역 (지오 펜스 또는 비콘 영역)
비컨 CLBeacon의 배열은 모든 원거리 비컨을 포함한다.

비고

비컨은 IOT 객체입니다. Apple 표준 인 iBeacon 프로토콜을 준수하는 제품에 중점을두고 있습니다. 각 신호는 3 가지를 전송하는 일방적 인 장치입니다.

  1. UUID
  2. 주요한
  3. 미성년자

특정 UUID에 대한 비콘을 스캔하도록 CLLocation 관리자 객체를 설정하여 iBeacons를 검사 할 수 있습니다. 주어진 UUID를 가진 모든 비컨이 스캔됩니다.

CLLocation 관리자는 또한 비콘 지역의 출입구를 호출합니다.

iBeacon 기본 작동

  1. 모니터링 비컨 설치
func initiateRegion(ref:BeaconHandler){
    let uuid: NSUUID = NSUUID(UUIDString: "<UUID>")
    let beacon = CLBeaconRegion(proximityUUID: uuid, identifier: "")
    locationManager?.requestAlwaysAuthorization()    //cllocation manager obj.
    beacon?.notifyOnEntry = true
    beacon?.notifyOnExit = true
    beacon?.notifyEntryStateOnDisplay = true
    locationManager?.startMonitoringForRegion(beacon!)
    locationManager?.delegate = self;
    // Check if beacon monitoring is available for this device
    if (!CLLocationManager.isMonitoringAvailableForClass(CLBeaconRegion)) {
        print("error")
    }
    locationManager!.startRangingBeaconsInRegion(self.beacon!)
}
  1. 위치 관리자 입장 및 이탈 지역
func locationManager(manager: CLLocationManager, didEnterRegion region: CLRegion) {
    if(region.isKindOfClass(CLBeaconRegion)) {
        locationManager!.startRangingBeaconsInRegion(self.beacon!)
    }
}
    
func locationManager(manager: CLLocationManager, didExitRegion region: CLRegion) {
    if(region.isKindOfClass(CLBeaconRegion)) {
        locationManager!.stopRangingBeaconsInRegion(self.beacon!)
    }
}
  1. 위치 관리자 범위 표지
func locationManager(manager: CLLocationManager, didRangeBeacons beacons: [CLBeacon], inRegion region: CLBeaconRegion) {
    print(beacons.first.major)
}

특정 비컨 스캐닝

 beacon = CLBeaconRegion(proximityUUID: <#NSUUID#>, major: <#CLBeaconMajorValue#>, identifier: <#String#>) // listening to all beacons with given UUID and major value
 beacon =    CLBeaconRegion(proximityUUID: <##NSUUID#>, major: <##CLBeaconMajorValue#>, minor: <##CLBeaconMinorValue#>, identifier: <##String#>) // listening to all beacons with given UUID and major and minor value

아이비언 컨서트

먼저 위치 서비스 승인을 요청해야합니다.

let locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.requestWhenInUseAuthorization()
// OR locationManager.requestAlwaysAuthorization()

그런 다음 모든 iBeacons의 정보를 didRangeBeacons 안에 didRangeBeacons

func locationManager(manager: CLLocationManager, didRangeBeacons beacons: [CLBeacon], inRegion region: CLBeaconRegion) {
    for beacon in beacons {
        print(beacon.major)
        print(beacon.minor)
    }
}


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow