2016-12-11 42 views
0

我必須創建一個應用程序,它將通過支持BTLE 4.0的藍牙檢測非ios設備。發送圖像到非ios設備

我有如下疑點:

  1. 是否有可能從iPhone應用程序的影像傳輸到使用BTLE 4.0
  2. 我已經搜索了一些教程,談論中樞和外周非iOS設備。我的理解是,在這種情況下,iPhone應用程序將是外設,而非ios設備將成爲中央控制器? M I右
  3. 請問this code將能夠滿足我的所有要求
+0

您可以傳輸圖像;圖像只是以某種方式解釋的字節集合;您可以使用BLE傳輸字節。通常iOS應用程序將成爲中心。中央是掃描外設連接的設備。周邊廣告。 – Paulw11

+0

@ Paulw11,但我想用我的ios應用程序作爲外圍設備,將圖像發送到非ios設備,將支持BTLE 4.0。可能嗎? – KsK

+0

您可以從中央到外圍雙向發送數據,反之亦然。但爲什麼你想使用你的iOS應用程序作爲外設?正如@ Paulw11所說,你無法掃描(「檢測」)你的非iOS設備。順便說一句:你的附加代碼是用C編寫的。你應該使用swift代碼... – godlyblade

回答

0
  1. 是,能夠將圖像轉換爲數據和數據可以通過藍牙進行發送。要將UIImage轉換爲NSData,您必須決定您想要的格式。您可以使用UIImageJPEGRepresentationUIImagePNGRepresentation
    任何一個都會將UIImage轉換爲NSData。
  2. 不,你錯了。 iOS設備有一箇中央管理器(CBCentralManager),用於查找其他設備(CBPeripheral)。其他設備有許多服務(CBService),每個服務都可以有許多連接到的特性(CBCharacteristic)。連接創建後,您可以發送(寫入)或接收(讀取)數據。
  3. 代碼看起來不錯。但是SENDING數據的主要觀點似乎並不存在。您可以使用WRITE命令從iOS發送到藍牙外設,該命令將自動分解爲小數據包。大小限制爲64K,每千字節大約需要一秒 - 所以它非常慢。使用功能[peripheral writeValue:data forCharacteristic: characterstic type:CBCharacteristicWriteWithResponse];(您必須保留對外設和特性的參考)。