簡體   English   中英

是否可以使用藍牙連接iOS和Android設備?

[英]Is it possible to connect iOS and android device using Bluetooth?

我必須制作一個應用程序來配對iOS和Android設備(iPhone 5,iPad 3,Galaxy S3,Nexus 7,它們都使用藍牙4.0),然后相互發送數據。

  • 這個數據量是否有限? 我們可以發送照片或PDF等內容嗎?

我已經完成配對並使用CoreBluetooth和Apple BTLE_Transfer的示例代碼在2個iOS設備之間發送數據

根據我的理解,外圍設備(服務器)可以向中央(客戶端)發布廣告。 這個中心是自己掃描,然后通過查找所通告服務的UUID來嘗試查找服務器。

當我在Android上制作服務器時,它正在等待連接(監聽),我知道我的服務器的UUID和mac地址。 但是當我用我的iPhone掃描(當然掃描相同的UUID)時,我找不到服務器。

  • 那么android服務器是否有可能像iOS上的Peripheral一樣做廣告?
  • 或者我的iPhone客戶端可能使用服務器的mac地址進行連接?

問:這些數據量是否有限? 我們可以發送照片或PDF等內容嗎?

藍牙低功耗未針對發送大量數據進行優化,也未針對流進行優化。 它更適合定期發送小塊數據(例如溫度讀數,時間等)。 請查看此答案 ,了解BLE傳輸與傳統藍牙的不同之處。 話雖這么說,你仍然可以通過BLE發送大量數據,並且數據量是無限的。 但是,這可能最終變得不可靠且相對緩慢。

問:那么Android服務器是否有可能像iOS上的Peripheral一樣做廣告?

作為服務器/客戶端與外圍/中心完全不同: -

外圍/中央決定了連接的方式。 中央設備應該啟動連接。 外圍設備應該通告並等待連接請求。

客戶端/服務器決定數據的分發方式。 Gatt服務器保存數據。 Gatt客戶端可以讀取,寫入或通知(獲得連續的讀數流)此數據。 在大多數情況下,服務器也是外圍設備,但這不是強制性的。

所以回答你的問題,是的,服務器可以像iOS上的外設一樣做廣告。 但是,對於Android,此功能尚不可用,並且將成為下一版本(Android L)版本的一部分。 有關更多信息,請參閱此答案

問:或者我的iPhone客戶端可能使用服務器的mac地址進行連接?

據我所知,在coreBluetooth中,您需要連接外圍設備的UUID而不是MAC地址。 您無需知道從外圍設備公布的服務。 您最好的選擇是掃描外圍設備,然后連接到具有UUID和/或您知道屬於您的外圍設備的廣告數據的設備。

我希望這有幫助。

我不確定。 藍牙LE不是傳輸大文件的好主意。 在一個請求手機中,您只有18個字節。

Nexus 7藍牙芯片有一些缺陷 - 無法正常工作。

嘗試免費申請iPhone - Light Blue。

所以...

第一個問題:是的。

第二:是的,但這不是個好主意。 Iphone中的MAc地址每10分鍾交替一次,所有開啟/關閉藍牙。

一般來說,最好使用互聯網連接(通過雲端)發送大文件,有許多框架可以減少您的開銷。

但是,主要問題仍然是如何發現您想要將數據發送到哪個設備。

可以通過多種方式自行完成,例如使用BLE甚至聲音。

說實話,它的工作很多,所以如果你的應用程序是最終用戶驅動的,我會建議使用一個可以為你做跨平台發現的框架,例如: http//p2pkit.io或google附近。

免責聲明:我為Uepaa開發適用於iOS和Android的p2pkit

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM