2014-11-25 245 views
1

我試圖讓我的Windows平板電腦應用程序通過藍牙與其他設備進行通信。列出並連接到藍牙設備

首先我想掃描設備,然後我想連接到選擇的設備。

我做了一個簡單的測試應用程序:空白的首頁,並添加一個按鈕和一個listboxto它。然後我嘗試了下面的代碼女巫我別的forund那裏這裏SO:

ListBox1.Items.Clear(); 

    var devices = await DeviceInformation.FindAllAsync(RfcommDeviceService.GetDeviceSelector(RfcommServiceId.SerialPort)); 

    foreach (var device in devices) 
    { 
     ListBox1.Items.Add(device); 
    } 

不過這個名單就是一句

然後我試着只是枚舉設備和過濾掉不需要的設備:

var list = await DeviceInformation.FindAllAsync(); 
var uniqueList = new HashSet<string>(); 
var terminators = new List<string>() { "Audio", "Mixer", "Mic", "Realtek", "Usb", "Gmail,", "Line in", "Lyd", "Display", "surface", "@" }; 

foreach (var element in list) 
{ 

    var strToken = element.Name.ToUpper(); 

    if (!uniqueList.Add(strToken)) 
     continue; 

    var contains = false; 

    foreach (var word in terminators) 
     if (strToken.Contains(word.ToUpper())) 
      contains = true; 


    if (!contains) 
     ListBox1.Items.Add(element.Name); 
} 

但是,這並沒有給出任何平均值列表。

我有一種感覺,我做錯了。請讓我回到正軌。

回答

2

我剛剛得到了一個小智者,爲另一個SO問題告訴我它不是可行的。

Search and Connect to Bluetooth device in Windows 8/8.1 Store apps?

所以上市的解決方案是:

1)配對設備

2)列出來:

ListBox1.Items.Clear(); 

    var devices = await DeviceInformation.FindAllAsync(RfcommDeviceService.GetDeviceSelector(RfcommServiceId.SerialPort)); 

    foreach (var device in devices) 
    { 
     ListBox1.Items.Add(device); 
    } 
2

你有設置設備的能力了嗎?你必須自己定義Id和Function類型。

有用的鏈接:How to set device capabilities.

<m2:DeviceCapability Name="bluetooth.rfcomm"> 
    <m2:Device Id="any"> 
    <m2:Function Type="serviceId:00001101-0000-1000-8000-00805F9B34FB"/> 
    </m2:Device> 
</m2:DeviceCapability> 

此外,這是事實,你不能連接配對設備的。 (Windows似乎不支持它。)