我想從使用Swift的iOS 8.1+設備進行廣播。當我運行該應用程序時,它確實成功地播出了 ...但只有一秒鐘。我知道這一點,因爲從具有「掃描儀」應用的其他設備,我看到信標出現; 「打開電源」的打印語句也按預期顯示。iBeacon廣播開始,立即停止
我在peripheralManagerDidUpdateState
有其他打印語句,但他們從來沒有被叫,所以我不知道爲什麼廣播停止這麼快。
我是不是試圖做任何幻想(監測區域,確定接近度,在後臺廣播等) - 這只是一個普通的,普通的iBeacon傳輸從前景。
import CoreBluetooth
class ViewController: UIViewController, CBPeripheralManagerDelegate {
var beaconRegion = CLBeaconRegion()
var beaconData = NSDictionary()
var beaconManager = CBPeripheralManager()
...
後來:
self.beaconRegion = CLBeaconRegion(proximityUUID: bleUuid,
major: bleMajor,
minor: bleMinor,
identifier: "com.please.work")
後來,啓動廣播:
self.beaconData = self.beaconRegion.peripheralDataWithMeasuredPower(nil)
self.beaconManager = CBPeripheralManager(delegate: self, queue: nil, options: nil)
委託:
func peripheralManagerDidUpdateState(peripheral: CBPeripheralManager!) {
if(peripheral.state == CBPeripheralManagerState.PoweredOn) {
println("powered on")
self.beaconManager.startAdvertising(self.beaconData)
} else if(peripheral.state == CBPeripheralManagerState.PoweredOff) {
println("powered off")
self.beaconManager.stopAdvertising()
}
else {
println("something else changed")
}
}
UPDATE
這可能是由於我的設備(iPhone 6)出現問題;這裏是我的觀察:
重新啓動設備清除問題。
我在正常的應用程序中看到了現象。首先,我開始發佈這個:iBeacon Emitter app。然後(在另一臺設備上),我註冊UUID並用此iBeacon Scanner app進行監視。該設備出現,但〜分鐘後,它消失。之後,如果我切換髮射設備,我會看到我正在排除故障的快速開/關行爲。
更多關於,行爲發生在各個應用程序之間。如果我重新啓動(並清除問題,請參閱#1),然後導致此問題(請參閱#2)...問題會通過其他發射器/掃描儀應用程序出現。
很高興你找到它。是的,敲擊應用程序可能會有問題,因爲它試圖連接它所看到的每個藍牙廣告設備。之前我沒有注意到它會阻止iOS設備進行廣告。 – davidgyoung 2014-12-08 23:24:50