Microsoft Band 開發 (1) – 連接設備並進行簡單操作


一、准備工作

去年10月,微軟發布了微軟手環,並在幾個月后發布了相應平台的SDK並在持續更新中。今天,我們就來說說在Windows Phone當中進行MS Band應用的開發。

所謂Band開發,你寫的App其實在根本上是運行在你手機上的,Band只用於呈現信息、采集信息和顯示通知。當然,Band上強大的傳感器也可以幫助你構建更牛逼的健康類應用。我就拋磚引玉地來給大家簡單說說Band開發的所需的基礎知識。

首先,創建一個WP8.1(RT)的空白項目,下載並引用Band SDK(可以在Nuget上獲取)。

打開項目中的Package.appxmanifest文件,在“功能”選項卡(Capabilities)中勾選 “臨近”(Proximity)。

然后右鍵Package.appxmanifest,選擇查看代碼,在 <Capabilities> 標簽內下加入如下代碼:

<m2:DeviceCapability Name="bluetooth.rfcomm">      

<m2:Device Id="any">        

<!-- Used by the Microsoft Band SDK -->        

      <m2:Function Type="serviceId:A502CA9A-2BA5-413C-A4E0-13804E47B38F" />   

<!-- Used by the Microsoft Band SDK -->        

      <m2:Function Type="serviceId:C742E1A2-6320-5ABC-9643-D206C677E580" />      

    </m2:Device>    

</m2:DeviceCapability>

 

二、獲取設備列表

現在,准備工作就做得差不多了。可以正式開始寫代碼了。先在MainPage中放一個ListBox,名字就叫DevicesListBox,再弄一個Button。我們要做的就是在按下Button之后,顯示已經配對或連接的手環設備。

進入MainPage.xaml.cs,using一下Microsoft.Band這個命名空間。給Button的Click處理方法加入async關鍵字使其成為異步方法,因為我們一會要異步獲取手環列表。在Button_Click中加入下列代碼。

IBandInfo[] pairedBands = await BandClientManager.Instance.GetBandsAsync();

這樣,我們就得到了一個包含已配對或連接的手環的列表。這個IBandInfo接口提供了兩個常用的屬性:Name和ConnectionType,分別用於獲取手環的名稱和連接方式(一般是藍牙)

所以,比如我們想把pairedBands列表中手環的名稱依次顯示在DevicesListBox列表中,只需用foreach遍歷每一項然后將Name屬性添加到DevicesListBox中即可,如下。:

foreach (var b in pairedBands)

{

     DevicesListBox.Items.Add(b.Name);

}

 

三、連接手環

使用BandClientManager.Instance.ConnectAsync(IBandInfo bandInfo);方法來連接到指定的Band設備。

具體實現如下:

using (IBandClient bandClient = await BandClientManager.Instance.ConnectAsync(pairedBands[DevicesListBox.SelectedIndex]))

{

    //告知用戶連接成功           

}

因為IBandClient實現了IDisposable接口,所以可以用using(){}的形式,便於釋放資源。

而為了應對在連接過程中可能出現的異常,最好使用try-catch來處理異常並告知用戶。

 

四、獲取信息

在IBandClient中有兩個常用的方法,用於獲取用戶連接的手環的軟硬件信息。

分別是:

GetFirmwareVersionAsync();   獲取手環的固件版本

GetHardwareVersionAsync();   獲取手環的硬件版本

兩個方法都返回 string

 

五、總結

今天在這篇文章里簡單地介紹了一下微軟手環應用的開發,事實上還只是連接,還沒有到具體的開發這一步,在下一篇文章中,我應該會講一下在Band上進行和動態磁貼有關的操作。之后還會講如何在手環上創建UI之類的。

但是現在Band在中國依然是不溫不火的狀態,主要是由於沒有在中國發售和不支持中文的緣故。最近也有各種說法說微軟正在研發Band 2代,應該會彌補1代的不足,而對於開發者來說,2代的開發我預感不會有特別大的區別。所以,現在有Band的開發者可以學習手環應用的開發,而還沒有Band的開發者,也可以簡略了解一下,為將來2代手環的開發打一些基礎。萬一Band 2能比Apple Watch更成功呢?(盡管不太可能2333。。)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM