ibeacon を利用したサービス開発のポイント
DESCRIPTION
iBeacon を利用したサービス開発のポイントTRANSCRIPT
![Page 1: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/1.jpg)
iBeacon を利用したサービス開発のポイント
GMO インターネット次世代システム研究室
松井、佐藤、折田、塚元、宮尾
![Page 2: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/2.jpg)
アジェンダ[iBeacon のキホン ]1. iBeacon とは2.基本機能3.利用可能端末4. NFC との比較5.サービス事例
[ 技術的なポイント ]1. iOS, Android アプリ実装の違い2.消費電力3.セキュリティ
![Page 3: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/3.jpg)
1. iBeacon とは• Apple の商標• Location and Proximity Detection Technology
「位置と近接検出技術」
![Page 4: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/4.jpg)
1. iBeacon とはBluetooth Low Ene r gy ( BLE )を利用してシグナルを発信する機器
![Page 5: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/5.jpg)
BLE とは• 近距離無線通信技術 Bluetoothの拡張仕様• 極低電力で通信が可能なもの• 2010 年 7 月に発表された Bluetooth 4.0 規格• 免許なく使える 2.4GHz帯(ISM バンド ) の電波を
用い、最大 1Mbpsの通信が可能。• 対応チップは従来の 1/3 程度の電力で動作する
ことができ• ボタン電池一つで数年稼働することができると
されている。
![Page 6: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/6.jpg)
1. iBeacon とはシグナルはスマホで受信可能( Android 、
iOS )
![Page 7: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/7.jpg)
1. iBeacon とはシグナルが 50m 先まで届く。スマホで距離を観測できる。
![Page 8: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/8.jpg)
結論
• BLE 利用。• 広範囲に電波が届く。• スマホで受信可能。
![Page 9: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/9.jpg)
アジェンダ[iBeacon のキホン ]1. iBeacon とは2.基本機能3.利用可能端末4. NFC との比較5.サービス事例
[ 技術的なポイント ]1. iOS, Android アプリ実装の違い2.消費電力3.セキュリティ
![Page 10: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/10.jpg)
2.基本機能A .構成・ブロードキャスター・オブザーバー型・セントラル・ペリフェラル型
B .機能・ Beacon から送られてくる信号・スマホができること
![Page 11: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/11.jpg)
2.基本機能オブザーバー(スマホ)ブロードキャスター
( Beacon 端末)発信のみ
受信のみ
![Page 12: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/12.jpg)
2.基本機能
ペリフェラル セントラル読み書き(今回は対象外)
![Page 13: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/13.jpg)
2.基本機能
1. UUID2. Major3. Minor4. RSSI
Beacon から送られる信号
![Page 14: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/14.jpg)
Beacon から送られる信号UUID 128 ビット識別子 12345678-A1B3-B2C4-C3D5-EF567GH942E2
Major 16 ビットの符号なし整数。 0 ~ 65535
Minor 16 ビットの符号なし整数。 0 ~ 65535
![Page 15: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/15.jpg)
使い道UUID 128 ビット識別子 サービスで 1 個
Major 16 ビットの符号なし整数。 ショップなどの単位で 1 個
Minor 16 ビットの符号なし整数。 売り場、ビルの階層、支店などの小概念で
1 個
![Page 16: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/16.jpg)
RSSI
• Received Signal Strength Indicator• 受信信号強度• マイナスの値• 小さいほど近い状態を表す
![Page 17: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/17.jpg)
Beacon を受信する機器ができること(スマホ)
1.リージョン観測
2.レンジング観測
![Page 18: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/18.jpg)
リージョン観測
•入った•出た
![Page 19: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/19.jpg)
リージョン観測
入った!!!
出た!!!
![Page 20: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/20.jpg)
レンジング観測RSSI 電波強度からおおよその距離を図る(調整可能)
Immediate (すごく近い) 50cm以内Near (誓い) 50cm~6mFar (遠い) 6m~20mUnknown (不明) ???
![Page 21: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/21.jpg)
レンジング観測
近 遠
![Page 22: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/22.jpg)
結論• ブロードキャスターオブザーバー構成で サービス開発。• UUID 、 Major 、 Minor でビーコンを認識
できる。• 領域出入 + 距離 を利用できる。
![Page 23: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/23.jpg)
アジェンダ[iBeacon のキホン ]1. iBeacon とは2.基本機能3.利用可能端末4. NFC との比較5.サービス事例
[ 技術的なポイント ]1. iOS, Android アプリ実装の違い2.消費電力3.セキュリティ
![Page 24: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/24.jpg)
3.利用可能端末
A . iBeacon 端末B . iOS , Android
![Page 25: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/25.jpg)
iBeacon 端末• StickNFind 社
![Page 26: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/26.jpg)
iBeacon 端末• Aplix 社 M y Beacon
![Page 27: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/27.jpg)
iBeacon 端末• Estimote 社
![Page 28: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/28.jpg)
iBeacon 端末• shopbeacon
![Page 29: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/29.jpg)
Estimote StickNFind Aplix shopbeacon
価格 3500 円 3500 円 1000 円 4000 円技適 ○ ○ ○ ×
電池 2 年 1 年 1 年 5 年その他 デザイ
ンがおしゃれ
サイズが小さい。探し物アプリを販売。
安い。セキュリティ機能が強い。
米国の百貨店 Macy’s 実績アリ
![Page 30: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/30.jpg)
技適マーク(ぎてきまーく)とは
⇒ 技適マークが付いていない無線機は、「免許を受けられない/違法になる」恐れがありますので無線機を購入・使用する際は十分ご注意下さい。
技術基準適合証明と技術基準適合認定のいずれかあるいは両者の認証がなされていることを表示するマークで、総務省令に定められたものである。
![Page 31: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/31.jpg)
3.利用可能端末スマホ
[iOS]Ver.7 以降• iPhone 4s ~• iPad 第 3 世代~( mini,Air は可能)
[Android]Ver.4.3 以降
![Page 32: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/32.jpg)
Bluetooth の大分類• Bluetooth Smart : BLE のみ• Bluetooth Smart Ready : BLE+クラシック• Bluetooth :クラシックのみ
![Page 33: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/33.jpg)
Beacon の誤解• 対応端末でも Bluetooth OFF では使えない。 iPhone では
位置情報も必要
![Page 34: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/34.jpg)
結論
•現状は Aplix 社のビーコンがよい。• iOS 7 , Android 4.3
![Page 35: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/35.jpg)
アジェンダ[iBeacon のキホン ]1. iBeacon とは2.基本機能3.利用可能端末4. NFC との比較5.サービス事例
[ 技術的なポイント ]1. iOS, Android アプリ実装の違い2.消費電力3.セキュリティ
![Page 36: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/36.jpg)
NFC とは?• 近距離無線通信技術
• 「かざす」ことで通信可能
• 低速なデータ通信
![Page 37: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/37.jpg)
NFC と iBeacon の比較NFC iBeacon
最大距離 20cm 50m
検知 タッチ(能動的)
Bluetooth ON でPUSH 受信(受動的)
対応 iOS 8Android 2.3
iOS 7Android 4.3
価格 100 円 1000 円~電池 不要 1 年~通信 424kbps 1024kbps
同時接続 1 対 1 N 対 N
![Page 38: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/38.jpg)
結論
•NFC は能動的• iBeacon は受動的•要件に応じて利用する
![Page 39: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/39.jpg)
アジェンダ[iBeacon のキホン ]1. iBeacon とは2.基本機能3.利用可能端末4. NFC との比較5.サービス事例
[ 技術的なポイント ]1. iOS, Android アプリ実装の違い2.消費電力3.セキュリティ
![Page 40: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/40.jpg)
5.サービス事例
[ アメリカ ] ・ Masy’s ・ MLB
[日本 ] ・スマポ ・スマート座布団
![Page 41: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/41.jpg)
Macy’s (アメリカのデパート)
来店客のアプリへ商品情報、クーポンを通知
![Page 42: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/42.jpg)
MLB x iBeacon
20 のスタジアム(全体の 3分の 2 )
各スタジアム100 個のビーコン設
置
![Page 43: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/43.jpg)
MLB x iBeacon
座席案内
![Page 44: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/44.jpg)
MLB x iBeacon
利用回数カウント
ホットドッグのクーポン配布
![Page 45: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/45.jpg)
スマポ x iBeacon
来店するとポイントが貯められるサービス
来店時に通知を発火させる仕組みで iBeacon を利用(近づくと通知される)※ポイント付与は音波
![Page 46: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/46.jpg)
スマート座布団座布団の下にデバイス設置。
座った重みでビーコンが発火。
![Page 47: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/47.jpg)
スマート座布団空席情報を管理。
カフェの混雑状況をログ取得しデータ解析可能。
![Page 48: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/48.jpg)
結論
•情報発信、クーポン配布をPUSH できるアプリの事例が多い。
![Page 49: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/49.jpg)
検証アプリを開発しました
![Page 50: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/50.jpg)
出社アプリ
セルリアンタワー 12F にビーコンを設置
座席に近づくとビーコン信号をスマホがキャッチ
⇒ アプリで出社できる!
![Page 51: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/51.jpg)
サーバ構成12F ビーコン スマホ
Web サーバ
⇒ TimePro を叩いて出社!
![Page 52: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/52.jpg)
出社アプリ
![Page 53: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/53.jpg)
デモ
![Page 54: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/54.jpg)
リージョン観測
入った!!!
![Page 55: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/55.jpg)
レンジング観測
近 遠
「近い」で出社可能になる
![Page 56: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/56.jpg)
デモのまとめ
バックグラウンドリージョン観測 ⇒ 範囲内ビーコン検知 ⇒ ローカル通知発火
レンジング観測 ⇒ 距離観測( Far Near⇒ )
![Page 57: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/57.jpg)
無事動くものができた!
![Page 58: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/58.jpg)
サービス開発のキモ• アプリが起動していない状態でもビーコ
ンは検知されるか?• Bluetooth でバッテリーは食わないか?• 不正は行われないか?
![Page 59: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/59.jpg)
アジェンダ[iBeacon のキホン ]1. iBeacon とは2.基本機能3.利用可能端末4. NFC との比較5.サービス事例
[ 技術的なポイント ]1. iOS, Android アプリ実装の違い2.消費電力3.セキュリティ
![Page 60: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/60.jpg)
iOS, Android アプリ実装の違い
A.iOS向けアプリ実装B.Android向けアプリ実装C.iOS 、 Android の比較
![Page 61: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/61.jpg)
iOS 実装の流れ
1. UUID定義2.リージョン観測3.レンジング観測4.バックグラウンドタ
スク
![Page 62: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/62.jpg)
UUID定義// 観測対象の UUID と識別子を定義して、// CLBeaconRegion を作成するlet uuidString = “00000000-1234-A123-B456-E123C456D789”let beaconIdentifier = “gmo-beacon”let beaconUUID:NSUUID = NSUUID(UUIDString: uuidString)
let beaconRegion:CLBeaconRegion = CLBeaconRegion(proximityUUID: beaconUUID, identifier:
beaconIdentifier )
![Page 63: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/63.jpg)
リージョン観測
入った!!!
![Page 64: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/64.jpg)
リージョン観測//UUID を指定して観測スタートlocationManager = CLLocationManager()locationManager!.delegate = selflocationManager!.startMonitoringForRegion(beaconRegion)
![Page 65: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/65.jpg)
LocationManager デリゲートメソッド
開始 didStartMonitoringForRegion入った! didEnterRegion出た! didExitRegion失敗! monitoringDidFailForRegion:withError
![Page 66: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/66.jpg)
didEnterRegion
func locationManager( manager: CLLocationManager!, didEnterRegion region: CLRegion!) {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {
// 境界に入ったので、レンジング観測を開始 manager.startRangingBeaconsInRegion(region as CLBeaconRegion) }) }
![Page 67: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/67.jpg)
レンジング監視
近 遠
![Page 68: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/68.jpg)
レンジングデリゲートメソッド今の状態 didRangeBeacons:inRegionエラー rangingBeaconsDidFailForRegion:withError:
![Page 69: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/69.jpg)
didRangeBeaconsfunc locationManager( manager: CLLocationManager!, didRangeBeacons beacons: [CLBeacon]!, inRegion region: CLBeaconRegion!) { for beacon in beacons { // 指定範囲に入っていなければスキップ If (inRangeProximity.filter {$0 == beacon.proximity}).count == 0 { continue } // 同じ major,minor の最後の測定状態を取得 var arr: [CLBeacon] = [] for lb in lastBeacons { if lb.major == beacon.major { if lb.minor == beacon.minor{ arr.insert(lb, atIndex: arr.count) } } } let lastBeacon = arr }}
![Page 70: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/70.jpg)
値 内容proximityUUID UUID
major major
minor minor
proximity ビーコンとの距離
accuracy 近接値の精度rssi 受信強度
値がすぐ取れる。 Android と異なる点
![Page 71: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/71.jpg)
didEnterRegion時バックグラウンドタスク
// バックグラウンドだと 10 秒程度しか起動できないので、// バックグラウンドタスクを作成すると 180 秒程度、起動可能になる。
let app = UIApplication.sharedApplication()var bgTaskId: UIBackgroundTaskIdentifier? bgTaskId = app.beginBackgroundTaskWithExpirationHandler({ dispatch_async(dispatch_get_main_queue(), { if bgTaskId != UIBackgroundTaskInvalid { app.endBackgroundTask(bgTaskId!) bgTaskId = UIBackgroundTaskInvalid } }) })
![Page 72: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/72.jpg)
iOS のポイント1. CoreLocation を使う。 ※CoreBluetooth は明示的に使わなくてよい。
2. UUID を指定する。 UUID は MAX20 件。 1UUID につき、 65535*65535 通りの ID を持てる。
3.バックグラウンドでリージョン観測。⇒これによりアプリ未起動でも挙動。 サービスの課題をクリア
![Page 73: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/73.jpg)
Android アプリ実装
• リージョン観測とタイムアウト• スキャンした情報の加工
![Page 74: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/74.jpg)
Android向けアプリ実装まずはパーミッション
<uses-permission android:name="android.permission.BLUETOOTH"/> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
BLE 対応端末のみインストールさせる <uses-feature android:name=“android.hardware.bruetooth_le” android:required="true"/>
![Page 75: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/75.jpg)
Bluetooth マネージャの初期化BluetoothManager mBluetoothManager =(BluetoothManager)getSystemService(Context.BLUETOOTH_SERVICE);
mBluetoothAdapter = mBluetoothManager.getAdapter();
![Page 76: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/76.jpg)
リージョン観測とタイムアウト( iOS との違い)
//Blutooth ON 時、バックグラウンドで常に動かすprivate void connect() { mHandler.postDelayed(new Runnable() { @Override public void run() { mBluetoothAdapter.stopLeScan(BleActivity.this); }}, 5000); // タイムアウトを設定 // スキャン開始 mBluetoothAdapter.startLeScan(this);}
![Page 77: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/77.jpg)
リージョン観測後の情報の取得private BluetoothAdapter.LeScanCallback
mLeScanCallback = new BluetoothAdapter.LeScanCallback() { @Override public void onLeScan(final BluetoothDevice device, int rssi,byte[] scanRecord) { //UUID,major,miner,RSSI の判定処理 } }
![Page 78: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/78.jpg)
UUID 、 Major 、 Minorif(scanRecord.length > 30){ //iBeacon の場合 6 byte 目から、 9 byte 目はこの値に固定されている。 if((scanRecord[5] == (byte)0x4c) && (scanRecord[6] == (byte)0x00) && (scanRecord[7] == (byte)0x02) && (scanRecord[8] == (byte)0x15)) { String uuid = IntToHex2(scanRecord[9] & 0xff) + IntToHex2(scanRecord[10] & 0xff) + IntToHex2(scanRecord[11] & 0xff) + IntToHex2(scanRecord[12] & 0xff) + "-" + IntToHex2(scanRecord[13] & 0xff) + IntToHex2(scanRecord[14] & 0xff) + "-” + IntToHex2(scanRecord[15] & 0xff) + IntToHex2(scanRecord[16] & 0xff) + "-” + IntToHex2(scanRecord[17] & 0xff) + IntToHex2(scanRecord[18] & 0xff) + "-” + IntToHex2(scanRecord[19] & 0xff) + IntToHex2(scanRecord[20] & 0xff) + IntToHex2(scanRecord[21] & 0xff) + IntToHex2(scanRecord[22] & 0xff) + IntToHex2(scanRecord[23] & 0xff) + IntToHex2(scanRecord[24] & 0xff); String major = IntToHex2(scanRecord[25] & 0xff) + IntToHex2(scanRecord[26] & 0xff); String minor = IntToHex2(scanRecord[27] & 0xff) + IntToHex2(scanRecord[28] & 0xff); } }
![Page 79: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/79.jpg)
scanRecord Byte 数 説明
1 1 ブロック目のバイト数2,3 flag4 2 ブロック目のバイト数5 メーカー固有の AD type データ
6,7 会社コード (0x004C が Apple の会社コード )
8 データのタイプ (0×02 が iBeacon)
9 連なる iBeacon データのバイト数10~25 UUID26,27 major28,29 minor
30 校正された電波強度 ( 距離を求めるときの基準値、 2 の補数 )
![Page 80: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/80.jpg)
Android のポイント• 自分で書かないといけない部分が多い。
1.リージョン監視のタイムアウト制御 2. scanRecord の中身解析 (とくにレンジングは自分で RSSI で 距離のあたりをつける)
めんどくささ or 柔軟性?
![Page 81: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/81.jpg)
アビダルマ• Aplix 社推奨のライブラリ。• 2次的著作物に無料で利用可能。• iOS に近い処理をラッパーして実現。
![Page 82: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/82.jpg)
アビダルマの利点 その1
省電力実装
アプリ画面がフォアグラウンドにない、 またはディスプレイが 消灯している。 ⇒15秒周期で 5秒間ずつリージョン観測実行。
対象 UUID の絞込み ⇒不要な通信を発生させない。
デフォルトでは 0.1秒ごとにスキャンを実行し続けるので非常に電池を食いやすい。
![Page 83: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/83.jpg)
アビダルマの利点 その2
デバイス不具合対応• AQUOS Xx 304SH 、 Nexus4 、 Nexus7 不具合
⇒内部的にカバーしている。• GALAXY S5 にて通知される受信 RSSI が他
機種と比較して低い。
![Page 84: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/84.jpg)
他のライブラリ
Android Beacon Libraryhttps://github.com/AltBeacon/android-beacon-library
![Page 85: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/85.jpg)
iOS Android
利用者 ver.7 以上90%強
ver.4.3 以上20%弱
OS設定・パーミッション
Bluetooth位置情報バックグラウンド
Bluetooth
観測対象 UUID指定必須 UUID指定自由リージョン観測
頻度 OS依存UUID指定必須
頻度実装可能UUID指定自由
レンジング観測
バックグラウンドタスクMax180秒
実装者に依存
![Page 86: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/86.jpg)
サービス開発のキモ• アプリが起動していない状態でも ビーコンは検知されるか?⇒なんとかバックグラウンドでやれそう
• Bluetooth でバッテリーは食わないか?• 不正は防げるか?
![Page 87: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/87.jpg)
アジェンダ[iBeacon のキホン ]1. iBeacon とは2.基本機能3.利用可能端末4. NFC との比較5.サービス事例
[ 技術的なポイント ]1. iOS, Android アプリ実装の違い2.消費電力3.セキュリティ
![Page 88: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/88.jpg)
消費電力
iBeacon 端末本体
⇒ これはそもそも低電力になっているので問題ない
![Page 89: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/89.jpg)
消費電力
・ AisleLabs による調査・ Android, iOS の BLE 消費電力比較実験
http://www.aislelabs.com/reports/ibeacon-battery-phones/http://www.aislelabs.com/reports/ibeacon-battery-drain-iphones/
![Page 90: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/90.jpg)
バッテリーに与える影響
・周囲のビーコン個数・スキャン回数(リージョン観測回数)
![Page 91: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/91.jpg)
周囲のビーコン個数・0個・7個・10個
個数が多いほどスマホ電池消費が増える。
![Page 92: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/92.jpg)
スキャンのインターバル・ 0.1秒スキャン +0.1秒休む・ 1秒スキャン +1秒休む・ 2秒スキャン +2秒休む
頻度が狭いとスマホバッテリーを消費する。
![Page 93: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/93.jpg)
スキャンのインターバル・1秒スキャン+9秒休む ・5秒スキャン+5秒休む
スキャン時間が長いとバッテリーを消費する。
![Page 94: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/94.jpg)
バッテリーに与える影響• ビーコン個数 : 少ないほうがいい• スキャン回数 : 少ないほうがいい
ある意味当たり前の結果!
![Page 95: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/95.jpg)
Android側の実装の現実解
アビダルマの実装
⇒5秒スキャン + 15秒インターバル
※デフォルト 1秒 10 回スキャンよりはこちらのほうがよい
![Page 96: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/96.jpg)
いままで Android 実装のめんどくささが目立っていたが。。。
![Page 97: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/97.jpg)
![Page 98: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/98.jpg)
iOS7 はなぜ Android に劣るのか?
iOS側が自動的にリージョン監視
⇒Android側は頻度を実装できるので、消費電力を意識して頻度を抑えることがで
きる。
iOS7.1 以降は改善された?!?
ビーコン端末の性能に左右?!?
![Page 99: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/99.jpg)
iOS Android
利用者 ver.7 以上90%強
ver.4.3 以上20%弱
OS設定・パーミッション
Bluetooth位置情報バックグラウンド
Bluetooth
観測対象 UUID指定必須 UUID指定自由リージョン観測
頻度 OS依存UUID指定必須
頻度実装可能UUID指定自由
レンジング観測
バックグラウンドタスクMax180秒
実装者に依存
消費電力 良 新デバイス:優
![Page 100: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/100.jpg)
サービス開発のキモ• アプリが起動していない状態でも ビーコンは検知されるか?⇒なんとかバックグラウンドでやれそう
• Bluetooth でバッテリーは食わないか?⇒実装上の工夫( +新機種)で大丈夫• 不正は防げるか?
![Page 101: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/101.jpg)
アジェンダ[iBeacon のキホン ]1. iBeacon とは2.基本機能3.利用可能端末4. NFC との比較5.サービス事例
[ 技術的なポイント ]1. iOS, Android アプリ実装の違い2.消費電力3.セキュリティ
![Page 102: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/102.jpg)
セキュリティ• 偽ビーコンを作成できる問題本物であることを検証し保証する仕組みが必要
![Page 103: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/103.jpg)
偽ビーコンの例
UUID 、 Major 、 Minor がバレてしまうと自宅の Mac から出社可能( Mac でビーコン発信可能)
![Page 104: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/104.jpg)
偽ビーコンの例店舗に行かなくてもポイントが自在に取得できる 店舗
![Page 105: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/105.jpg)
「本物のビーコンとの通信ですよ」を保証する仕組みが必要!!!
![Page 106: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/106.jpg)
セキュリティ GPS を利用して
Aplix 社サーバ
![Page 107: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/107.jpg)
セキュリティ 乱数を利用
ビーコンを 2 個仕込むためデバイスの電池の消費が少し早い。Aplix 社の認証サーバを利用するコストが発生する。
Aplix 社サーバ
![Page 108: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/108.jpg)
まとめ• アプリが起動していない状態でも ビーコンは検知されるか?⇒なんとかバックグラウンドでやれそう• Bluetooth でバッテリーは食わないか?⇒実装上の工夫( +新機種)で大丈夫• 不正は防げるか?⇒Aplix 社の認証機構を利用する( or 自力で実装)
![Page 109: iBeacon を利用したサービス開発のポイント](https://reader034.vdocuments.site/reader034/viewer/2022051015/5565e0b5d8b42ae8488b4ce9/html5/thumbnails/109.jpg)
ご清聴ありがとうございました。