藍牙,WiFi(一)

IOS藍牙,WiFi開發

最近工作剛好有涉及到和藍牙相關方面的開發研究,便也去仔細的琢磨了解了下ios的藍牙。寫的不是過多技術性的,更多是口水話聊聊在琢磨藍牙開發時所涉及到的問題吧,不喜還請見諒。整理的相關內容如下。

開發場景

研發的場景環境爲,在人員密集的地方實現上網,網絡支付等。因爲人員過於密集,所以手機通常是無法上網的。WiFi的佈置需要電源,在一些特定的地方也是無法讓你想在哪就在哪牽線安路由。所以只能從手機端考慮下手。要實現的原理有點類似於國外應用fireChat,利用藍牙和WiFi進行的聊天。

研發思路

  1. 用手機端的個人熱點,進行WiFi連接並形成一個主幹局域網,所有的人都可以通過WiFi連接進入到這個主幹網中。只要主幹網中有能上網的,則其它連接的設備都可直接通過熱點上網。
  2. 用藍牙建立局域網,然後由藍牙進行設備間的數據傳遞實現無網絡情況下信息交互,傳遞到某個可以上網的設備端間接實現上網。

一.手機端佈局個人熱點

手機端開啓WiFi個人熱點後,別的設備在連接此WiFi熱點後便可直接上網。單獨提一下,只能使用手機網絡進行WiFi熱點的分享,即你不能在連接WiFi的情況下又同時開啓WiFi熱點。只要開啓了WiFi熱點,手機連接的WiFi便會斷開。
Android端的WiFi可以進行開發,即可以在開發的應用中搜索指定的WiFi並進行連接或斷開等操作,ios的WiFi就比較尿性了。

  1. ios開啓設置中的個人熱點時可以選擇是否支持WiFi分享,藍牙分享等,當你第一次開啓個人熱點時便會提示。當你用iPhone開啓個人熱點並選擇支持WiFi,藍牙分享時。Android和iPhone都只可以搜索到你開啓的WiFi熱點,只能用WiFi連接,無法搜索到藍牙。但是iPad和mac倒是可以用藍牙進行連接。
  2. ios無法進行WiFi 開發,只可以檢測當前連接的WiFi的ssid(服務集標識,即WiFi名),然後任何操作都不可進行了。即你無法搜索附近的WiFi,更無法連接指定的WiFi或斷開等。appStore上有WiFi萬能鑰匙,可以搜索附近的WiFi熱點,使用的思路其實是利用GPS定位。當你開啓了應用後,上傳服務器你當前的地址,服務器會返回你當前位置附近的WiFi有哪些。如果需要連接,則會跳轉到iPhone設置中的WiFi連接界面手動進行連接。
    早期ios4,5的時候倒是有sdk可以進行搜索附近的藍牙功能,網上也能搜索到,但ios5過後就不可用了。
    到了ios8的時候甚至當你連接WiFi的時候,你的mac地址都是隨機變化的,別人無法通過mac地址來標記你,實現保護你的隱私。其實我也是非常的不懂怎麼就和隱私有關,瞭解了下。應用場景有如下。商城有提供免費的WiFi,當你進入商城並連接了商城的WiFi後,便可標記你的信息。商城的WiFi一直處於掃描狀態,只要你一旦進入商城,WiFi掃描到你的手機後,便可記錄你來商城的時間,頻率等等。當我查到此時,也頗爲驚訝,當真是信息時代,無處不統計,無處不記錄啊。

iOS的個人熱點基本就沒有繼續研究下去的必要了,畢竟蘋果不讓你搞,你就只能幹瞪着眼不是。

二.藍牙連接

ios的藍牙開發框架有幾個,但總結下來只有兩種,即可以和不可以與Android等非ios應用進行藍牙連接進行數據交換兩種。
先說下ios的藍牙情況,因爲蘋果即賣硬件又賣軟件,音像版權等,所以蘋果是不會讓你在應用裏隨便進行文件傳輸的。音樂基本只能在iTunes下載,如果你在iTunes上下載了,又用藍牙分享給別人就又得扯到版權等了,凡此種種吧。所以ios的文件管理功能是非常讓人惱火的,想要像安卓那樣想把文件放哪就放哪就別指望了。
1.ios有airdrop,允許你在特定的幾個應用間進行文件傳輸。iPhone開啓藍牙,其他的iPhone是無法搜索到的,Android倒是可以搜索到iPhone的藍牙,不過無法連接。iPhone無法搜索到安卓開啓的藍牙。
2.藍牙分爲高速藍牙和低功耗藍牙以及普通藍牙。現在常說的藍牙4.0便是這三種藍牙功能的集合。也就是說藍牙4.0下面有這三種模式可以讓你進行選擇切換。
3.ios的高速藍牙(藍牙2.0)只能實現ios和ios之間應用的連接(只能是相同的應用,或是自己開發的應用,這個後續會繼續講)
4.藍牙4.0可以實現和Android的通信連接,不過蘋果只開放了藍牙4.0的低功耗模塊,用於和穿戴設備進行信息傳遞。所謂低功耗指就是極度省電,但傳輸數據非常慢,是按k來算的。多是用來開發智能家居,手環等。

總結:

一.個人熱點

  1. 安卓開放的個人熱點
    1. iPhone可以連接安卓的WiFi熱點,但iPhone無法對WiFi進行操作,只能使用系統內置WiFi連接,即無法控制選擇WiFi的連接與斷開操作等
    2. iPhone無法搜索安卓提供的藍牙熱點
  2. iPhone開放的個人熱點
    1. 安卓可以以藍牙形式連接iPhone開放的熱點
    2. iPhone與iPhone間只可以自動通過WiFi形式連接個人熱點,iPhone開啓的藍牙iPhone搜索不到。iPhone與iPad,iMac直接可以用藍牙形式連接熱點,同樣爲系統內置功能,無法進行操作。

二.藍牙

  1. 藍牙2.0(高速藍牙)
    1. 安卓可以搜索到iPhone的藍牙,無法連接。
    2. iPhone無法搜索到安卓的藍牙
    3. 能實現的藍牙2.0連接僅供ios設備自己開發的應用進行搜索與連接。理論可實現一個設備可以同時被8個設備連接,並能同時再去連接8個設備,共16個設備左右。基於設備數量有限,現在只測試了一個設備在被別的藍牙連接的同時再去連接一個藍牙,可以選擇性的斷開與某個藍牙的連接,可以自動搜索附近藍牙設備並自動進行連接
    4. iPhone的藍牙2.0連接實現是以廣播,接收的會話方式進行消息傳遞,異步的連接,暫無法實現網絡請求的透傳,實現藍牙熱點的開發。
  2. 藍牙4.0BLE(低功耗藍牙)
    1. iPhone僅可以使用藍牙4.0的低功耗模塊,可以實現和安卓的相互連接(iPhone需要iPhone4s以上,安卓需要4.5系統以上,纔有ble功能)
    2. 每次的發送數據不能超過20個字節
    3. 轉發速率最快4K/S,可穩定工作在2.8K/S
發佈了14 篇原創文章 · 獲贊 1 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章