2013-05-07 96 views
11

的情況如下IOS啓用CoreBluetooth被動檢查。我有一個已經部署的應用程序正在被人們使用。我考慮實施一些實驗藍牙低功耗的特點,但我做之前,我要進行誰已經開啓藍牙功能的用戶數量的「野生」的調查在所有的時間/離開藍牙。所以,我只想在後臺檢查這一點,並將已經使用藍牙的用戶數量統計回服務器,而不用實際使用藍牙通信。如果藍牙不提示用戶打開藍牙

我已經在我的應用程序中成功實例化了一個CBCentralManager,並且可以在實例化後立即檢索藍牙狀態,並通過centralManagerDidUpdateState:更新藍牙狀態。所以這很好。我遇到的問題是,如果狀態爲CBCentralManagerStatePoweredOff,則設備會提示一條提示,提示用戶「打開藍牙以允許[應用名稱]連接到附件」。這是我試圖避免的這個提示。在這個階段,我只想調查一下藍牙開啓的用戶數量 - 我不想使用藍牙連接。

所以,有沒有辦法來檢查藍牙狀態,而不提示,如果你不使用藍牙連接打算的用戶?

回答

10

iOS 7有一個新的options參數在創建CBCentralManager來關閉此功能。

我很樂意爲早期的iOS解決方案。

+1

很好找。你是指'CBCentralManagerOptionShowPowerAlertKey'?如果你決定擴大你的答案,以指定這是傳遞給/進一步信息的鏈接,我會標記這個接受的答案。否則,當我有機會再次詳細查看時,我會對此答案進行編輯。 – 2013-10-15 03:15:25

+2

是的,使用CBCentralManagerOptionShowPowerAlertKey,試試myCentralManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil options:@ {CBCentralManagerOptionShowPowerAlertKey:[NSNumber numberWithBool:NO]}]; – 2013-10-17 16:27:27

8

當你初始化CBCentralManager您可以使用以下。

NSDictionary *options = @{CBCentralManagerOptionShowPowerAlertKey: @NO}; 
self.manager = [[CBCentralManager alloc] initWithDelegate:self queue:nil options:options]; 

我可能沒有正確解釋它,如果有任何問題請直接發表評論。

+0

這不適用於iOS 8.0及以上版本 – maxisme 2015-10-19 20:56:06

+0

@Maximilian你確定嗎?它適用於我的iOS 8.4.1 iPad Mini 2. – 2016-01-21 15:23:39

+0

它應該如何快速完成? – po5i 2016-08-23 20:26:55