老版藍芽基本的流程

2021-07-05 04:53:28 字數 3221 閱讀 2280

**:

藍芽是一種支援裝置短距離傳輸資料的無線技術。android在2.0以後提供了這方面的支援。 

從查詢藍芽裝置到能夠相互通訊要經過幾個基本步驟(本機做為伺服器): 

1.設定許可權 

在manifest中配置 

<

uses-permission

android:name="android.permission.bluetooth"

/>

<

uses-permission

android:name="android.permission.bluetooth_admin"

/>

2.啟動藍芽 

首先要檢視本機是否支援藍芽,獲取bluetoothadapter藍芽介面卡物件 

bluetoothadapter mbluetoothadapter = bluetoothadapter.getdefaultadapter();  

if(mbluetoothadapter == null)  

if(!mbluetoothadapter.isenabled())  

//......

public

void onactivityresult(int requestcode, int resultcode, intent data)  

}  }  

3。發現藍芽裝置 

這裡可以細分為幾個方面 

(1)使本機藍芽處於可見(即處於易被搜尋到狀態),便於其他裝置發現本機藍芽 

//使本機藍芽在300秒內可被搜尋

private

void ensurediscoverable()   

}  

(2)查詢已經配對的藍芽裝置,即以前已經配對過的裝置 

setpaireddevices = mbluetoothadapter.getbondeddevices();  

if (paireddevices.size() > 0)   

} else   

(3)通過mbluetoothadapter.startdiscovery();搜尋裝置,要獲得此搜尋的結果需要註冊 

乙個broadcastreceiver來獲取。先註冊再獲取資訊,然後處理 

//註冊,當乙個裝置被發現時呼叫onreceive

intentfilter filter = new intentfilter(bluetoothdevice.action_found);  

this.registerreceiver(mreceiver, filter);  

//當搜尋結束後呼叫onreceive

filter = new intentfilter(bluetoothadapter.action_discovery_finished);  

this.registerreceiver(mreceiver, filter);  

//.......

private broadcastreceiver mreceiver = new broadcastreceiver()   

}else

if (bluetoothadapter.action_discovery_finished.equals(action))   

}  }  

};  

4.建立連線 

查詢到裝置 後,則需要建立本機與其他裝置之間的連線。 

一般用本機搜尋其他藍芽裝置時,本機可以作為乙個服務端,接收其他裝置的連線。 

啟動乙個伺服器端的執行緒,死迴圈等待客戶端的連線,這與serversocket極為相似。 

這個執行緒在準備連線之前啟動 

//uuid可以看做乙個埠號

private

static

final uuid my_uuid =  

uuid.fromstring("fa87c0d0-afac-11de-8a39-0800200c9a66");  

//像乙個伺服器一樣時刻監聽是否有連線建立

private

class acceptthread extends thread catch (ioexception e)   

serversocket = temp;  

}  public

void run() catch (ioexception e)   

}  if(socket!=null)  

}  //取消監聽

public

void cancel() catch (ioexception e)   

}  }  

搜尋到裝置後可以獲取裝置的位址,通過此位址獲取乙個bluetoothdeviced物件,可以看做客戶端,通過此物件device.createrfcommsockettoservicerecord(my_uuid);同乙個uuid可與伺服器建立連線獲取另乙個socket物件,由此服務端與客戶端各有乙個socket物件,此時 

他們可以互相交換資料了。 

創立客戶端socket可建立執行緒 

//另乙個裝置去連線本機,相當於客戶端

private

class connectthread extends thread catch (ioexception e)   

}  public

void run() catch (ioexception e)  catch (ioexception e1)   

connetionfailed();  //連線失敗

return;  

}  //此時可以新建乙個資料交換執行緒,把此socket傳進去

}  public

void cancel()  catch (ioexception e)   

}  }  

5.建立資料通訊執行緒,進行讀取資料 

//建立連線後,進行資料通訊的執行緒

private

class connectedthread extends thread catch (ioexception e)   

}  public

void run() catch (ioexception e)   

}  }  

public

void write(byte buffer)  catch (ioexception e)   

}  public

void cancel()  catch (ioexception e)   

}  }  

Android藍芽開發流程

首先,要操作藍芽,先要在androidmanifest.xml裡加入許可權 然後,看下api,android所有關於藍芽開發的類都在android.bluetooth包下,只有八個類 bluetoothadapter,bluetoothclass,bluetoothclass.device,blue...

外接藍芽開發流程

2 開發流程 1 config.ini放入 device mediatek mt8127 3rd goc config.ini 2 把鈴聲檔案,放入 device mediatek mt8127 3rd goc ring.2 把gocsdk放入 device mediatek mt8127 3rd ...

外接藍芽開發流程

2 開發流程 1 config.ini放入 device mediatek mt8127 3rd goc config.ini 2 把鈴聲檔案,放入 device mediatek mt8127 3rd goc ring.2 把gocsdk放入 device mediatek mt8127 3rd ...