質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Bluetooth

Bluetoothとは短距離の間でデータを交換するための無線通信規格である。固定・モバイル両方のデバイスから、短波の電波送信を行うことで、高いセキュリティをもつパーソナルエリアネットワーク(PAN)を構築する。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

1回答

1000閲覧

bluetoothの検出について(swift)

debon18

総合スコア7

Bluetooth

Bluetoothとは短距離の間でデータを交換するための無線通信規格である。固定・モバイル両方のデバイスから、短波の電波送信を行うことで、高いセキュリティをもつパーソナルエリアネットワーク(PAN)を構築する。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

1グッド

0クリップ

投稿2017/11/30 09:23

とりあえず、サンプルを参考にして、コードを書いて普段使っているBluetooth接続のイヤホンで試しているのですがperipheral.nameを出力したいのですが何も表示されません。
最終的にはMbedのLEDを点灯させることが目的で、まずはBluetoothを検出できるようにしたいです。

import UIKit import CoreBluetooth class ViewController: UIViewController,CBCentralManagerDelegate { var centralManager:CBCentralManager! var BLEPeripheral:CBPeripheral! var count = 0 //=========================================================================== // MARK: -- 初期化 & ビューライフサイクル -- //=========================================================================== override func viewDidLoad() { super.viewDidLoad() //CBCentralManagerを初期化 //centralManagerDidUpdateStateで状態変化が取得できます centralManager = CBCentralManager(delegate: self, queue: nil) } //=========================================================================== // MARK: -- BLE -- //=========================================================================== //セントラルマネージャーの状態変化を取得 func centralManagerDidUpdateState(_ central: CBCentralManager) { switch (central.state) { case .poweredOff: print("Bluetoothの電源がOff") case .poweredOn: print("Bluetoothの電源はOn") //ペリフェラルのスキャン開始 centralManager.scanForPeripherals(withServices: nil, options:nil) case .resetting: print("レスティング状態") case .unauthorized: print("非認証状態") case .unknown: print("不明") case .unsupported: print("非対応") } } @IBAction func startButton(){ count += 1 print("(count)") } //スキャン結果を受け取る private func centralManager(central: CBCentralManager, didDiscoverPeripheral peripheral: CBPeripheral, advertisementData: [String : AnyObject], RSSI: NSNumber) { //スキャンが完了しない場合は、peripheral.nameが違っているかもしれません。 //ここでperipheral.nameを確認してください。 //print("(peripheral.name)") // 変更start if(count != 0){ print("peripheral.name(String(describing: peripheral.name))") } //end BLEPeripheral = peripheral centralManager.stopScan() print("(String(describing: peripheral.name))をスキャン完了!") } }
Omogo👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

centralManagerがprotocol縛りのメソッドならprivateは外してください。

swift

1//private func centralManager 2func centralManager

なんかデジャブ…w

投稿2017/11/30 11:00

fromageblanc

総合スコア2724

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

debon18

2017/11/30 14:05

とりあえずご指摘の通り直してみましたが検出できませんでした。そもそもイヤホンのbluetoothは検出できるものなのでしょうか?やはり実際にmbedを用いたほうがいいですか?初心者で何をどうすればいいか全然分かりません。どうかお力添えを。。。
debon18

2017/11/30 14:26

centralManagerの下にprint("a")を入れたのにも関わらず、出力されませんでした。なので、スキャン自体ができてないと思うのですがどうでしょうか。
fromageblanc

2017/11/30 15:29

swiftのバージョンがわからないのですが、 func centralManager(_ central: CBCentralManager だったりしませんか?( _ の有無) スキャン自体の可否はわかりかねます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問