サーチ…
パラメーター
パラメーター | 詳細 |
---|---|
マネージャー | CLLocationManagerリファレンス |
領域 | CLRegionは、円形領域(ジオフェンスまたはビーコン領域) |
ビーコン | CLBeaconの配列にはすべてのレンジビーコンが含まれています |
備考
ビーコンはIOTオブジェクトです。私たちはApple標準のiBeaconプロトコルに準拠したものに焦点を当てています。各ビーコンは、3つのものを送信する一方向のデバイスです
- UUID
- メジャー
- マイナー
特定のUUIDのビーコンをスキャンするようにCLLocationマネージャオブジェクトを設定することで、iBeaconsをスキャンできます。指定されたUUIDを持つすべてのビーコンがスキャンされます。
CLLocationマネージャはまた、ビーコン領域の入力と終了を要求する。
iBeacon基本操作
- 監視ビーコンの設定
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!)
}
- ロケーションマネージャの入力と退出地域
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!)
}
}
- ロケーションマネージャ範囲ビーコン
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