私はRoximityからいくつかのビーコンを得て、私が集めたものから、すべてのRoximityビーコンは同じUUIDを持っています。 [locationManager: didRangeBeacons: inRegion:]
を使用してメジャーとマイナー値を取得できることがわかりますが、プッシュ通知を送信するように[locationManager didEnterRegion]
を設定し、ユーザーが別のRoximityビーコンで歩いている場合、どうすれば[locationManager didEnterRegion]
でこれを判断できますか?Can [LocationManager didEnterRegion]ビーコンのメジャーとマイナーを取得できますか?
答えて
基本的に2つの選択肢があります。
監視対象の領域を定義して、特定のメジャー番号とマイナー番号が含まれるようにします。主な制限は、iOSだけで、あなたが唯一の20種類iBeaconsのためにこれを行うことができることを意味し、同時に20件の地域を監視できることです:
CLBeaconRegion *region1 = [[CLBeaconRegion alloc] initWithProximityUUID:[[NSUUID alloc] initWithUUIDString:@"8deefbb9-f738-4297-8040-96668bb44281"] major:1201 minor:3211 identifier:@"beacon1"]; [_locationManager startRangingBeaconsInRegion:region1]; CLBeaconRegion *region1 = [[CLBeaconRegion alloc] initWithProximityUUID:[[NSUUID alloc] initWithUUIDString:@"8deefbb9-f738-4297-8040-96668bb44281"] major:1798 minor:2122 identifier:@"beacon2"]; [_locationManager startRangingBeaconsInRegion:region2]; ...
のみUUIDに基づいて地域を監視するだけでなく、この同じ地域に測距ん同時に。あなたが見る特定のiBeaconごとにRangingコールバックを取得します。レンジングコールバックでは、表示されているビーコンのメジャー/マイナー番号をチェックし、所有しているビーコンのリストと比較します。一致が見られる場合にのみ、特定の操作を実行します。ビーコンの追加を続けると、このリストをアプリケーションに最新の状態に保つのが難しい場合があります。そのため、iBeacon識別子のリストをクラウドに保存できるようなWebサービス(ProximityKitなど)を使用したい場合があります。
-(void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region { for (CLBeacon *beacon in beacons) { if ([self isMyBeaconWithMajor: beacon.major minor: beacon.minor]) { // Yes, this is my beacon! Do something special here } } } -(BOOL)isMyBeaconWithMajor: (NSNumber *)major minor: (NSNumber *)minor { // TODO: write code here that returns YES if the major and minor belong to you }
別の最終可能性(あなたが求めているものを外に確かに少しは)物事は非常に簡単になりますカスタムUUID、とビーコンを使用することです。完全開示:私はカスタマイズ可能な識別子を持つiBeaconsを販売する従業員です。
あなたはこのコードでメジャーとマイナーを確定することができます
- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region{
CLBeaconRegion *r = (CLBeaconRegion *) region;
NSLog(@"UUID %@, major %@, minor %@", r.proximityUUID, r.major, r.minor);
[self myNotification:@"You are in the region"];
[self.locationManager startRangingBeaconsInRegion:r];
}
このデリゲートメソッドは、監視対象の領域を返します。基本的には、「ねえ、あなたが監視するように言った地域はちょうど入力されました」と、その地域を宣伝するビーコンについては何も教えてくれません。 したがって、返されるメジャー値とマイナー値は、通知をトリガーしたビーコン領域のものではなく、あなた自身のものです。 – joshblour
- 1. iBeacons:マイナー、メジャー、UUIDの理解
- 2. ビーコン添付ファイル近接ビーコンapiの取得
- 3. Linuxデバイスドライバ、ファイルディスクリプタを使用してマイナー番号を取得できますか?
- 4. 近くのビーコンをスキャンすると同時に、Androidデバイスからビーコン信号を送信できますか?
- 5. EddystoneビーコンとしてiPhone/iPadブロードキャストを作成できますか?
- 6. LocationManagerからProximityAlertsのリストを取得する
- 7. 2D配列のメジャーとマイナーな対角線が0からなるかどうかを調べる
- 8. アンドロイド:30秒でSamsung Galaxy S2でLocationManagerを取得することができます
- 9. Pythonで異なる線種を持つメジャーとマイナーのグリッド線を作成する方法
- 10. android can can android:重力しますか?
- 11. フラグメント内のLocationManagerへの参照を取得する方法
- 12. メジャーのメジャーを他のメジャーと関連させて作成する
- 13. iPhone LocationManager - アプリケーションの開始時に座標を取得する
- 14. LocationManagerとLocationClientを合わせてユーザーの場所を取得する
- 15. wordpressで「everyone can post」スタイルのサイトを作成できますか?
- 16. アンドロイドから緯度と経度を取得できません
- 17. CLLocationManager didEnterRegion間違っ通知
- 18. LocationManagerクラスにアクセスしてMonoDroidで使用できますか?
- 19. Javaのメジャーとマイナーガベージコレクション
- 20. Mdxはメジャーとメジャーの繰り返し値を生成します
- 21. Altbeaconでビーコン(TI SensorTag CC2650)を検出できません
- 22. LocationManager GetBestProvider基準
- 23. GPSから正確な位置を取得できません
- 24. Can Static(FBML)Facebook fanpageはユーザーのUIDとプロフィールにアクセスできますか?
- 25. BLEビーコンとしてBLE対応のAndroid/iPhoneを使用することはできますか?
- 26. アセンブリバージョンのマイナー値を持つ余分な文字を追加できますか?
- 27. NETWORK_PROVIDERからGPS座標を取得できません。
- 28. 地域のモニタリング:didEnterRegion火災しかしdidExitRegionがsimuator
- 29. アンドロイド - LocationManager vs FusedLocation
- 30. LinkedInのプロフィールを取得することはできますか?
は偉大な答えをいただき、ありがとうございます。私は昨日オプション2をしようとしていたが、かなり働いていなかった。それをもう一度見てみましょう。 – Chris
各ビーコンにユニークなUUIDを使用すると、一度に最大20までしか監視できませんか? – random
しかし、それは私が提案しているものではありません。独自の固有のProximityUUIDを定義し、自分のすべてのiBeaconsに同じものを使用すると、そのProximityUUIDを見るとiBeaconsがあなたのものであることがわかります。 – davidgyoung