2017-01-21 5 views
0

私はappleのiBeaconフレームワークを使用し、近接しているすべてのbluetooothデバイスのリストをコンソールに記録しようとするネイティブアプリを開発中です。私はthis tutorialに従っていますが、私はアプリケーションを実行するときに何もコンソールに印刷されません。私のエラーはどこですか?ビーコンのデータを表示

以下は、私が書かれているビューコントローラファイルの完全な詳細です:

import UIKit 
import CoreLocation 


class ViewController: UIViewController, CLLocationManagerDelegate { 

let locationManager = CLLocationManager() 
let region = CLBeaconRegion(proximityUUID: NSUUID(uuidString: "852c0828-fe67-4dd7-b8ff-52852a66851e")! as UUID, major: 8008, minor: 1337, identifier: "Testing") 


override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 

    locationManager.delegate = self 

    if (CLLocationManager.authorizationStatus() != CLAuthorizationStatus.authorizedWhenInUse) { 
     locationManager.requestWhenInUseAuthorization() 
    } 

    locationManager.startRangingBeacons(in: region) 
} 

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

func locationManager(_ manager: CLLocationManager, didRangeBeacons beacons: [CLBeacon], in region: CLBeaconRegion) { 
    print(beacons) 
    print("hello") 
    } 
} 

は何も「こんにちは」を含め、実行時にコンソールに出力されません。

答えて

1

コードはよく見えます。ビーコンの識別子を知っていて、それが送信していますか?

Locateのような棚のビーコン検出器アプリを使用して、ビーコンが表示されることを確認します。注意して、検出のためにビーコンのUUIDをアプリに設定する必要があります。

他のいくつかのヒント:

  • それ以外の場合は、場所へのアクセスのためのプロンプトを表示することはできませんあなたのInfo.plistは、このようなエントリが含まれていることを確認してください:<key>NSLocationWhenInUseUsageDescription</key><string>This app needs to access your location so it can tell when you are near a beacon.</string>

  • をご確認してくださいロケーションへのアクセスを促され、実際にそれを許可しました。設定 - > [あなたのアプリ名] - > [場所]をチェックして、[許可する場所のアクセス]にチェックマークがないことを確認します。

  • ブルートゥースがオンになっていることを確認してください。

0
  1. まずCLBeaconRegionが正しい作成するために使用される設定済みのproximityUUIDを確認してください。
  2. 指定されたビーコンはアクティブにする必要があります。つまり、ディスペンスする必要はありません。指定したビーコンの領域にデバイスを入力すると、デバイスに表示されるようにする必要があります。
  3. また、Info.plistを確認して、NSLocationWhenInUseUsageDescriptionというペアが含まれるようにしてください。そのため、あなたの場所へのアクセスを求めるプロンプトが表示され、アクセスを許可する必要があります。
  4. あなたのブルートゥースがオンになっているはずです。