2013-11-21 206 views
1

我有一個健身應用程序已經在應用程序商店,現在我想實現一個藍牙設備,用戶可以購買,如果他們希望。這是我第一次處理藍牙,並閱讀「核心藍牙編程指南」後,我有以下問題。藍牙iOS配對

我的應用程序包含我的藍牙設備只需要顯示數據的信息。如果我沒有弄錯,這使得應用程序成爲「外設」,因爲它具有數據。藍牙設備需要來自應用程序的數據,以便使藍牙設備成爲「中央」。我對此有糾正嗎?

最後,這裏是我困惑的地方。藍牙設備有一個按鈕,當按下該按鈕以觸發應用程序時,該應用程序可讓應用程序向藍牙設備發送新值。這可能嗎?我之所以問這個問題是因爲在這種情況下,現在這意味着藍牙設備是外設,應用程序是中央設備?如果是的話,我是否必須打破兩者之間的當前連接才能切換角色(經理和外設)?

預先感謝您,真的很感激!

特德

+0

首先:它是藍牙低功耗設備還是「經典」藍牙設備?因爲在第一個選項中,你必須使用'CoreBluetooth.framework'和第二個'ExternalAccessory.framework',這是兩種思考/實現方式。 – Larme

+0

@Larme我的道歉沒有說明,它的低能量。我已經使用CoreBluetoooth。如果可能,你可以在最後一段回答我的問題嗎?謝謝 – Teddy13

回答

3

當你有超過編碼的應用程序和編碼設備控制,你可以把它解決任何一種方式(假設該設備要與你的應用程序,並沒有別的具體使用)。

中央和外圍設備都有方法來讀寫外設的數據。

沒有關於數據的更多信息以及它更新的頻率,很難提出實現它的最佳方法。

你說你的設備將有一個按鈕,它會告訴應用程序發送數據到它,以及應用程序將不需要發送任何東西,它只是保持值最新,然後你的按鈕會告訴你的設備閱讀最新的價值。

或(同樣不知道這可能不適合的目的)你具有完全的按鈕做掉,你的設備訂閱的應用程序的特性,並通知所有的值由應用程序更改時間。

+1

是的,只是因爲設備在外設中運行並不意味着它不能被髮送數據。您可以寫入屬性,就像您可以從中讀取一樣。例如,我已經使用藍牙LE RS-232適配器完成了雙向串行通信。 –

+0

@布拉德拉爾森感謝你對布拉德的闡述。並感謝Darren的明確解釋。會接受! – Teddy13