2016-07-10 5 views
1

지난 주 iBeacon에 대해 알아 냈습니다. 나는 아마존에서이 표지판을 샀다. https://www.amazon.com/gp/product/B010Q2PUGA/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1 Light Blue 앱을 사용하면 신호 (beacon) 정보 (UUID, Major, Minor 등)를 읽을 수있어 신호가 방송되고 있음을 알 수 있습니다. 이 튜토리얼을 따라, 나는 비컨에 대한 프로그래밍에 익숙해 지도록 앱을 만들었다. (내 UUID 사용) 코드에 약간의 변경이 있었고, 신속한 버전으로 인해 println을 인쇄해야했습니다. https://willd.me/posts/getting-started-with-ibeacon-a-swift-tutorial 내 앱이 내 표지를 인식하지 못하는 것 같습니다. 내 로그/디버그 영역에서 난 단지 참조 :iOS 앱이 내 표지를 인식하지 못함

[] 
[] 
[] 

내 코드는 다음과 같습니다

import UIKit 
import CoreLocation 

class ViewController: UIViewController, CLLocationManagerDelegate { 


    let locationManager = CLLocationManager() 
    let region = CLBeaconRegion(proximityUUID: NSUUID(UUIDString: "8EBB5704-9697-02C9-D073-BF9162B72D7B")!, identifier: "iBeacon-6713") 
// let region = CLBeaconRegion(proximityUUID: NSUUID(UUIDString: "8EBB5704-9697-02C9-D073-BF9162B72D7B")!, major: 11046, minor: 11047, identifier: "ibeacon") 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     locationManager.delegate = self; 
     if (CLLocationManager.authorizationStatus() != CLAuthorizationStatus.AuthorizedWhenInUse) { 
      locationManager.requestWhenInUseAuthorization() 
     } 
     locationManager.startRangingBeaconsInRegion(region) 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

// func locationManager(manager: CLLocationManager, didRangeBeacons beacons: [CLBeacon], inRegion region: CLBeaconRegion) { 
//  print(beacons) 
// } 
    func locationManager(manager: CLLocationManager, didRangeBeacons beacons: [CLBeacon], inRegion region: CLBeaconRegion) { 
     print(beacons) 
    } 

} 

엑스 코드 : 버전 7.3.1 (7D1014)

OS X 엘 캐피 탄 버전 10.11.5 (15F34)

아이폰 OS : 버전 9.3.2 (13F69)

애플 스위프트 버전 2.2 (swiftlang-703.0.18.8 그 소리-703.0.31)

답변

1

나는 8EBB5704-9697-02C9-D073-BF9162B72D7B가 비콘의 근접 UUID가 아닌 것으로 의심됩니다. LightBlue는 블루투스 장치에 대해 여러 UUID를 표시합니다. 모두가 ProximityUUID는 아닙니다. iOS 응용 프로그램과 마찬가지로 LightBlue는 CoreLocation으로 비콘을 탐지하기 위해 PriximityUUID를 알아야합니다. 그렇지 않으면 CoreBluetooth로 Bluetooth 전송을 감지 할 수는 있지만 iBeacon 식별자를 읽을 수는 없습니다. 이것은 아마도 일어나는 일입니다.

장치의 ProximityUUID를 찾아야합니다. 제조업체 지침에 따라 수행 할 수없는 경우 Locate 앱과 함께 Android 기기를 사용할 수 있습니다.이 앱은 식별자를 인식하지 않고 iBeacon UUID를 읽을 수 있습니다. iOS 기기에서는이 작업을 수행 할 수 없습니다.

+0

답장을 보내 주셔서 감사합니다. 불행하게도,이 장치는 전혀 문서가 없었고, 안드로이드 장치가 없습니다 .... – MWW

+0

글쎄, 나는 다른 UUID와 Major와 Minor의 정수 값을 준 Windows 응용 프로그램을 찾을 수있었습니다. . 모두 지금 작동 중입니다! 정보 주셔서 감사합니다. – MWW