實現Android藍芽聊天通訊

2021-10-06 17:11:52 字數 2944 閱讀 6127

實現android藍芽聊天通訊

用到的原理:通過利用藍芽socket通訊的方式實現兩個android裝置的訊息傳輸。

功能流程:

1.首先搜尋可以進行藍芽配對的裝置

2.請求藍芽配對建立裝置之間的連線

3.連線成功後,實現裝置之間訊息傳輸

藍芽配對部分的實現

註冊廣播,以便找到可配對的藍芽裝置後傳送廣播。包括開始搜尋,搜尋結束,找到裝置三個廣播。

intentfilter filter =

newintentfilter

(bluetoothdevice.action_found)

;registerreceiver

(mreceiver, filter)

; filter =

newintentfilter

(bluetoothadapter.action_discovery_finished)

;registerreceiver

(mreceiver, filter)

; mbtadapter = bluetoothadapter.

getdefaultadapter()

; set

paireddevices = mbtadapter.

getbondeddevices()

;if(paireddevices.

size()

>0)

}else

開啟對其他藍芽裝置的搜尋。

mbtadapter.

startdiscovery()

;

定義廣播接收者,處理掃瞄藍芽裝置的結果。

private

final broadcastreceiver mreceiver =

newbroadcastreceiver()

}else

if(bluetoothadapter.action_discovery_finished.

equals

(action))}

}};

服務類的實現

監聽執行緒,準備接收新的連線

// 建立監聽執行緒,準備接受新連線。使用阻塞方式,呼叫 bluetoothserversocket.accept()

private

class

acceptthread

extends

thread

catch

(ioexception e)

mmserversocket = tmp;

}@override

public

void

run(

)catch

(ioexception e)

if(socket != null)

catch

(ioexception e)

break;}

}}}}

public

void

cancel()

catch

(ioexception e)

}}

連線後一直執行的執行緒,利用inputstream和outputstream接收和傳送新的訊息

private

class

connectedthread

extends

thread

catch

(ioexception e)

mminstream = tmpin;

mmoutstream = tmpout;

}@override

public

void

run(

)catch

(ioexception e)}}

public

void

write

(byte

buffer)

catch

(ioexception e)

}public

void

cancel()

catch

(ioexception e)

}}

連線時,用於處理連線裝置發出藍芽連線的請求

private

class

connectthread

extends

thread

catch

(ioexception e)

mmsocket = tmp;

}@override

public

void

run(

)catch

(ioexception e)

catch

(ioexception e2)

chatservice.

this

.start()

;return;}

synchronized

(chatservice.

this

)connected

(mmsocket, mmdevice);}

public

void

cancel()

catch

(ioexception e)

}}

配對完傳送訊息

private

void

sendmessage

(string message)

if(message.

length()

>0)

}

所必要的許可權

Android藍芽通訊(三) 藍芽通訊的實現

在前兩篇部落格中大致介紹了藍芽相關的基礎知識,不了解的朋友可以檢視前兩篇部落格 android藍芽通訊 一 藍芽功能的相關許可權 android藍芽通訊 二 藍芽的相關操作 在本篇部落格中我將介紹如何實現兩個藍芽裝置之間的通訊,藍芽的通訊類似於socket的通訊,在藍芽通訊中沒有絕對的裝置充當ser...

android 藍芽 通訊 bluetooth

此例子基於 android demo android 的藍芽開發,雖然不多用,但有時還是會用到,android 對於藍芽開發從 2.0版本的 sdk才開始支援,而且模擬器不支援,測試需要兩部手機 由於公司用到了藍芽,所以學習了一下,也和大家分享一下!總體來說和網路 socket 很相似,監聽,連線,...

android 藍芽 通訊 bluetooth

此例子基於 android demo android 的藍芽開發,雖然不多用,但有時還是會用到,android 對於藍芽開發從 2.0版本的 sdk才開始支援,而且模擬器不支援,測試需要兩部手機 由於公司用到了藍芽,所以學習了一下,也和大家分享一下!總體來說和網路 socket 很相似,監聽,連線,...