藍芽傳輸檔案

2021-08-31 19:26:40 字數 2283 閱讀 5651

第一部分:使用系統自身帶的藍芽功能,直接用intent呼叫就可以

private void sendfile(fileinfo fileinfo)

需注意的是android系統好像不願意你藍芽傳送apk,如果你傳送會顯示失敗。

在網上看到傳送方式有兩種,我去試驗下那個藍芽用stream方式可不可以傳送apk

第二部分:用bluetoothadapter那一系列的操作自己寫server 以及 client

1.獲取本機的藍芽介面卡:

bluetoothadapter btadapter = bluetoothadapter.getdefaultadapter();//獲取本機藍芽介面卡

if(btadapter == null)

2.開啟藍芽介面卡:

if(!btadapter.isenable)

3.獲取已經配對的藍芽裝置:

setpaireddevices = btadapter.getbondeddevice();

for(int i = o;i

4.開啟可可檢測性:

intent intent = new intent(bluetoothadapter.action_request_discoverable);

intent.putextra(bluetoothadapter.extra_discoverable_duration, 300);

startactivity(intent);

注意這裡的時間最多設定為300s 當大於300s時候還一樣是300s

5.掃瞄周圍的裝置:

if(btadapter.isdiscovering)

btadapter.startdiscovery();//就這樣啟動就可以,當掃瞄到裝置後系統會發廣播,所以要註冊廣播來接收掃瞄到的裝置資訊

private brodcastreceiver btreceiver = new broadcastreceiver() else if(bluetoothdevice.action_discovery_finished.equals(action))}}

intentfilter filter = new intentfilter(bluetoothdevice.action_found);

this.registerreceiver(btreceiver,filter);

filter = new intentfilter(bluetoothdevice.action_discovery_finished);

this.registerreceiver(btreceiver,filter);

//別忘記在程式退出時候取消廣播

public void ondestroy()

this.unregisterreceiver(btreceiver);

}

6.連線,這個主要是bluetoothsocket和bluetoothserversocket,客戶端,和伺服器

其實這個uuid我也是一知半解,百科看完了大概就當個id用吧,服務端跟客戶端要一樣的

網上有一篇很不錯的帖子講了這部分的原理:

[url]

[/url]

那我就借用下他的兩小塊**吧:

//服務端

private bluetoothserversocket serversocket = btadapter

.listenusingrfcommwithservicerecord(service_name,service_uuid);

private bluetoothsocket exchangesocket = serversocket.accept();

//客戶端

private bluetoothsocket clientsocket = btdevice

.createrfcommsockettoserverrecord(server_uuid);

clientsocket.connet();

//接下來就是clientsocket.getoutputstream().write(byte);

藍芽傳輸專案(藍芽socket通訊)

藍芽socket通訊,參考了 的部落格,了解到進行通訊的幾個重要步驟 1 首先開啟藍芽 2 搜尋可用裝置 3 建立藍芽 socket 獲取輸入輸出流 4 讀取和寫入資料 其中 開啟藍芽 和 搜尋裝置 不需多說,可以咯看我的部落格 建立藍芽socket,獲取輸入輸出流 1 確定乙個伺服器端,乙個客戶端...

嵌入式arm linux藍芽檔案傳輸移植

2.編譯pc的linux核心 3.安裝libs和utils。libs和bluez得安裝都是安裝linux軟體正常方式安裝 安裝libs 注意 如果你是fedora 9或者是核心是2.6.25及以上的版本在安裝utils的時候會出現某些檔案沒有或者是引數沒定義的問題。第二,移植libs庫和utils工...

藍芽基帶傳輸(小白文)

近期開始深入接觸藍芽。首先了解下藍芽是如何傳輸資料的 在應用層,使用者可以隨心所欲的將自己想要傳送的資料通過簡單易懂的格式發給藍芽,藍芽基帶傳輸的只能是01的訊號。藍芽傳輸的技術使用的是跳頻技術,也就是將資料分成若干個資料報,通過79個指定的藍芽頻道進行傳輸資料報 藍芽4.0只有40個通道 每個頻寬...