c 讀藍芽資料 C 程式設計連線藍芽裝置,檔案收發

2021-10-13 14:36:03 字數 3908 閱讀 5206

public partial class form1 : form

bluetoothradio radio = null;//藍芽介面卡

string sendfilename = null;//傳送檔名

bluetoothaddress sendaddress = null;//傳送目的位址

obexlistener listener = null;//***

string recdir = null;//接受檔案存放目錄

thread listenthread, sendthread;//傳送/接收執行緒

public form1()

initializecomponent();

radio = bluetoothradio.primaryradio;//獲取當前pc的藍芽介面卡

checkforillegalcrossthreadcalls = false;//不檢查跨執行緒呼叫

if (radio == null)//檢查該電腦藍芽是否可用

messagebox.show("這個電腦藍芽不可用!", "提示", messageboxbuttons.ok, messageboxicon.information);

recdir = environment.getfolderpath(environment.specialfolder.desktop);

labelrecdir.text = recdir;

private void buttonselectbluetooth_click(object sender, eventargs e)//選擇遠端藍芽裝置

selectbluetoothdevicedialog dialog = new selectbluetoothdevicedialog();

dialog.showremembered = true;//顯示已經記住的藍芽裝置

dialog.showauthenticated = true;//顯示認證過的藍芽裝置

dialog.showunknown = true;//顯示位置藍芽裝置

if (dialog.showdialog() == dialogresult.ok)

sendaddress = dialog.selecteddevice.deviceaddress;//獲取選擇的遠端藍芽位址

private void buttonselectfile_click(object sender, eventargs e)//選擇要傳送的本地檔案

openfiledialog dialog = new openfiledialog();

if (dialog.showdialog() == dialogresult.ok)

sendfilename = dialog.filename;//設定檔名

labelpath.text = path.getfilename(sendfilename);

private void buttonsend_click(object sender, eventargs e)//傳送按鈕

sendthread = new thread(sendfile);//開啟傳送檔案執行緒

sendthread.start();

private void sendfile()//傳送檔案方法

obexwebrequest request = new obexwebrequest(sendaddress, path.getfilename(sendfilename));//建立網路請求

webresponse response = null;

trybuttonsend.enabled = false;

request.readfile(sendfilename);//傳送檔案

labelinfo.text = "開始傳送!";

response = request.getresponse();//獲取回應

labelinfo.text = "傳送完成!";

catch (system.exception ex)

messagebox.show("傳送失敗!", "提示", messageboxbuttons.ok, messageboxicon.warning);

labelinfo.text = "傳送失敗!";

finally

if (response != null)

response.close();

buttonsend.enabled = true;

private void buttonselectrecdir_click(object sender, eventargs e)//選擇接受目錄

folderbrowserdialog dialog = new folderbrowserdialog();

dialog.description = "請選擇藍芽接收檔案的存放路徑";

if (dialog.showdialog() == dialogresult.ok)

recdir = dialog.selectedpath;

labelrecdir.text = recdir;

private void buttonlisten_click(object sender, eventargs e)//開始/停止監聽

if (listener == null || !listener.islistening)

radio.mode = radiomode.discoverable;//設定本地藍芽可被檢測

listener = new obexlistener(obextransport.bluetooth);//建立監聽

listener.start();

if (listener.islistening)

buttonlisten.text = "停止";

labelrecinfo.text = "開始監聽";

listenthread = new thread(receivefile);//開啟監聽執行緒

listenthread.start();

else

listener.stop();

buttonlisten.text = "監聽";

labelrecinfo.text = "停止監聽";

private void receivefile()//收檔案方法

obexlistenercontext context = null;

obexlistenerrequest request = null;

while (listener.islistening)

context = listener.getcontext();//獲取監聽上下文

if (context == null)

break;

request = context.request;//獲取請求

string uristring = uri.unescapedatastring(request.rawurl);//將uri轉換成字串

string recfilename = recdir + uristring;

request.writefile(recfilename);//接收檔案

labelrecinfo.text = "收到檔案" + uristring.trimstart(new char );

private void form1_formclosed(object sender, formclosedeventargs e)

if (sendthread != null)

sendthread.abort();

if (listenthread != null)

listenthread.abort();

if (listener != null && listener.islistening)

listener.stop();

c 讀藍芽資料 C 如何接收藍芽字元資料

公司買了個藍芽吊秤,想將重量傳到系統,我在網上找了一些資料,有以下一段 裝置是之前與藍芽匹配了的,可以找到 藍芽guid也是正確的 但在接收資料時,在這句 停住了,也不報其它錯誤 bluetoothclient bluetoothlistener.acceptbluetoothclient 應該是不...

c 讀藍芽資料 通過藍芽接收資料到c 程式

我正在使用thehand庫 32feet.net 我有乙個啟用藍芽的裝置,我想將裝置連線到我的計算機,然後將資料從裝置傳送到計算機 然後我想用我的程式捕獲這些資訊並進行處理 裝置將傳送3個變數 全部3個浮點數 我如何用藍芽捕獲這些資訊?我之前從未在電腦上使用藍芽 但是不知道我在做什麼,所以我不能讓它...

Linux使用藍芽連線裝置

今天我們介紹如何在linux上通過命令使用藍芽 由於本人的筆記本沒有帶藍芽,所以我買了乙個usb介面的藍芽介面卡,執行如下命令,就可以開到我們的藍芽裝置了 第二行 執行hciconfig可以看到 從上圖可以看出,我們的藍芽裝置是hci0 執行hcitool dev可以看到我們的藍芽裝置的硬體位址 執...