サーチ…


パラメーター

パラメーター詳細
マネージャー 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

iBeaconsに及ぶ

まず、ロケーションサービスの承認を要求する必要があります

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

その後、内部のすべてのiBeaconsの情報を得ることができます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