multipeerconnectivity框架的使用
multipeerconnectivity通過wifi、p2p wifi以及藍芽個人區域網進行通訊的框架,從而無需聯網手機間就能傳遞訊息。其原理是通過廣播作為伺服器去發現附近的節點,每個節點都以裝置名稱為標識。
mypeer = mcpeerid.init(displayname: uidevice.current
.name)
session = mcsession.init(peer: mypeer!, securityidentity: nil, encryptionpreference: .none)
session?.delegate = self
mcsession的幾個**方法必須實現,否則無法建立連線
//監聽連線狀態
func session(_ session: mcsession, peer peerid: mcpeerid, didchange state: mcsessionstate)
}//傳送dada資料
func senddata(_ messagevo: gpbmessage, successblock:(()->())?,errorblock:((nserror)->())?)
guard
letdata = nsdatatool.shareinstance
().returndata
(messagevo, messageid: 0)
else
do catch
leterror
asnserror
successblock?()
}//接收到的data資料
func
session
(_ session: mcsession, didreceive data: data, frompeer peerid: mcpeerid)
}//接收到的流資料
func
session
(_ session: mcsession, didreceive stream: inputstream, withname streamname: string, frompeer peerid: mcpeerid)
//接收到的檔案型別資料
func
session
(_ session: mcsession, didstartreceivingresourcewithname resourcename: string, frompeer peerid: mcpeerid, with progress: progress)
//接收到的檔案型別資料,可將檔案換路勁
func
session
(_ session: mcsession, didfinishreceivingresourcewithname resourcename: string, frompeer peerid: mcpeerid, at localurl: url, witherror error: error?)
我們通過mcadvertiserassistant(廣播)開啟搜尋服務
advertiser = mcadvertiserassistant.init(servicetype: servicestr, discoveryinfo: nil, session: session!)
//發出廣播
advertiser?.start()
advertiser?.delegate = self
mcbrowserviewcontrollerdelegate**方法
/// 發出廣播請求
func advertiserassistantwillpresentinvitation(_ advertiserassistant: mcadvertiserassistant)
/// 結束廣播請求
func advertiserassistantdiddismissinvitation(_ advertiserassistant: mcadvertiserassistant)
設定藍芽連線頁面,顯示效果如圖所示:
實現mcbrowserviewcontrollerdelegate**方法
func browserviewcontrollerdidfinish(_ browserviewcontroller: mcbrowserviewcontroller) )
}func browserviewcontrollerwascancelled(_ browserviewcontroller: mcbrowserviewcontroller)
小結
最後**具體實現位址
iOS藍芽學習
在ios中提供4個框架用於藍芽的連線 gamekit.framework 只能用於ios裝置之間連線,且是同乙個應用。ios7之前一般使用這個 multipeerconnectivity.framework 只能用於ios裝置之間連線,且是同乙個應用。ios7之後使用這個來代替gamekit.fra...
ios 藍芽簡介
這裡主要做個記錄。ios中其實提供了四個框架可以讓我們去實現藍芽連線 其中gamekit框架是在ios7的時候過期了,之前常用於遊戲的連線,gamekit框架可以使用藍芽在玩家之間建立乙個對等連線,然後彼此之間可以對戰,蘋果取而代之的是multipeerconnectivity,這兩個框架都只能用於...
iOS藍芽開發
直接看 首先推薦去看官方文件哦 現將建立藍芽工程的要點總結一下,由於工程主要涉及中心模式,所以只總結中心模式的用法 1,引入corebluetooth.framework 2,實現藍芽協議,如 h檔案如下 protocol cbcentralmanagerdelegate protocol cbpe...