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可以看到我們的藍芽裝置的硬體位址 執...