###前提・実現したいこと
お世話になっております。iPhoneをセントラルとしてアドバタイズのキャッチを試みているのですがうまくいきません。
目標はXcodeのコンソール上でペリフェラルの情報を展開することです。
###状況
コンソールでcentralManagerDidUpdateStateの変化は捉えらえてますが、
func centralManager(〜)が呼び出されません。
###該当のソースコード
swift
1import UIKit 2import CoreBluetooth 3 4class ViewController: UIViewController, CBCentralManagerDelegate { 5 private var Scan = false 6 private var centralManager: CBCentralManager! 7 let myButton: UIButton = UIButton() 8 9 override func viewDidLoad() { 10 super.viewDidLoad() 11 //ボタン 12 myButton.frame = CGRect(x:0,y:0,width:200,height:40) 13 myButton.backgroundColor = UIColor.red 14 myButton.setTitle("START", for: UIControlState.normal) 15 myButton.setTitleColor(UIColor.white, for: UIControlState.normal) 16 myButton.layer.position = CGPoint(x: self.view.frame.width/2, y:self.view.frame.height-50) 17 myButton.addTarget(self, action: #selector(ViewController.onClickMyButton(sender:)), for: .touchUpInside) 18 self.view.addSubview(myButton); 19 20 // セントラルマネージャ初期化 21 centralManager = CBCentralManager(delegate: self, queue: nil) 22 } 23 24 override func didReceiveMemoryWarning() { 25 super.didReceiveMemoryWarning() 26 } 27 28 // セントラルマネージャの状態が変化すると呼ばれる 29 func centralManagerDidUpdateState(_ central: CBCentralManager) { 30 print("state: \(central.state)") 31 } 32 33 // 周辺にあるデバイスを発見すると呼ばれる 34 private func centralManager(central: CBCentralManager, 35 didDiscoverPeripheral peripheral: CBPeripheral, 36 advertisementData: [String : AnyObject], 37 RSSI: NSNumber) 38 { 39 print("BLEデバイス: \(peripheral)") 40 } 41 42 func onClickMyButton(sender: UIButton) { 43 if Scan == false { 44 Scan = true 45 centralManager.scanForPeripherals(withServices: nil,options: nil) 46 sender.setTitle("STOP", for: UIControlState.normal) 47 } else { 48 centralManager.stopScan() 49 sender.setTitle("START", for: UIControlState.normal) 50 Scan = false 51 } 52 } 53}
###チェックしたこと
・iPhine下スライドメニューでのBLEオン
・ペリフェラルのアドバタイジングを他のアプリで確認
###補足情報(言語/FW/ツール等のバージョンなど)
Swift3 Xcode8 iPhone6S iOS10.0.2
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/03 02:18