[iPhone] Bluetooth Scan 検索を取得

iPhoneとBluetoothデバイスをScanするところをできるだけ簡単にやってみました。

Swift 5.1
Xcode 11.4

 

CoreBluetooth

 
Bluetooth といえば以前は消費電力が大きく、バッテリー消費の最適化として真っ先に停止されていたのですが Bluetooth version 4.0から低消費電力仕様となりBLEと通称されています。ただBluetooth Classicとは互換性がないので両方の機能を別に持つ必要があり面倒ではあります。

既にBLEから10年以上が経過しているのでClassicのことは忘れましょう(忘れたい)

iOSでBluetoothを扱うには Core Bluetooth を使います。
こちらのドキュメントがAppleから出ています。
Core Bluetooth Programming Guide あわせてこちらも参考にしました。
Transferring Data Between Bluetooth Low Energy Devices

 

 

用語

 
ここで使う使うBLEの主だった用語について

Central と Peripheral:
ネットワークのクライアント・サーバーの役割

Advertising:
Peripheralが名前や主要なサービス機能などの情報を周囲に発信する。その情報をいれたパケットが Advertising Packet でCentralで受け取る

UUID:
重複しない一意のIDで、サービスなどの個別機能を特定できます

Peripheral UUID
Service UUID
Characteristic UUID

  • Peripheral
    • Service1
      • Characteristic1
      • Characteristic2
    • Service2
    • Service3
 

設定

 
最初に、info.plistに以下の記述をしてユーザーの許可をとるようにします。
NSBluetoothAlwaysUsageDescription
NSBluetoothPeripheralUsageDescription

info.plist

コーディングはこのような流れになります

  • CentralManager 初期化
  • CentralManager のstatus確認
  • 検索開始
  • Peripheral探索結果を受信
  • 検索終了
 

サンプルコード

 
わかりやすく簡略化して、scanで周囲のPeripheralを探してみます。

ViewController.swift

 

これで起動後にBluetoothがオンになっていればログが取れます。


 

デバイスのBluetooth設定がオフの場合、初期化でoptionを使うと設定画面に誘導してくれます。

 
 

References:
Core Bluetooth | Apple Developer Documentation
Core Bluetooth Programming Guide – Apple Developer
Transferring Data Between Bluetooth Low Energy Devices
BLE Docs

一人でアプリ開発の限界を感じたら

アプリ開発を始めたけどわからないところがあり、誰かに聞きたいけど周りにはそんな人はいない…あるいは、会社で働いていて日中そんなに時間をとれないなど、オンライン・スクールがいいと思います。


TECH ACADEMY
自宅にいながら1時間でプログラミング基礎を習得

こういうものではアプリ作れないと言う意見もありますが、それは結局本人のやる気があるかないかです。やる気があっても独学では突破しにくいところは教えてもらうのが一番早い。


侍エンジニア塾
侍エンジニア塾 無料体験レッスン



とても簡単なことなのに本やネットの画像だけでは分かりにくいことはあります。実際に質問してピンポイントで教えてもらうと、なんだそんなこと、と言うのがけっこうあります。


CodeCamp
~約20,000名の受講生と300社以上の導入実績~
現役エンジニアのオンライン家庭教師CodeCamp




直接(ネットで)誰か分かる人に聞いた方が早く解決して、上達も早いと思います。


Play Ground
本業と並行してやるには月額制なのがありがたいです。


無料で転職まで
これはiOSアプリ限定ではありませんが無料です
その代わり就職することを前提にしたスクールで「エンジニアになって職を得たい」のであれば手っ取り早いかもしれません

受講料無料:社会人転職コース


誤字脱字、意味不明などのご意見は 謙: e-mail まで
ブックマークしておくと便利です このエントリーをはてなブックマークに追加
Twitter:


シェアする

  • このエントリーをはてなブックマークに追加

フォローする