Windows Phone 8.1低功耗藍牙開發-Nokia Treasure Tag


1. 引言

上一篇文章《Windows 8.1 低功耗藍牙開發》講述了如何在Windows 8.1平台上創建低功耗藍牙應用,並且以TI的Sensor Tag為例,給出了代碼步驟和演示。其實當前很多低功耗藍牙的應用場景是與用戶的手機相連接,如TI的Sensor Tag官方就給出了Android和iOS的客戶端應用(很遺憾沒有Windows Phone版本的,不過現在大家可以去Store上下載個人開發者開發的Sensor Tag應用了,前段時間剛剛出現在美國區的市場了)。再比如小米剛剛出的79塊錢的手環,也是通過低功耗藍牙與Android設備連接。今天,讓我們來看一看如何在Windows Phone 8.1上開發低功耗藍牙的應用。

 

2. 設備

Windows Phone 8的大部分設備從硬件上是支持藍牙4.0 BLE的,前提是系統必須升級,以Lumia設備為例,需要在Black以上。而且,從Build大會上的消息來看,目前大部分開發者的Developer Preview系統在軟件上是不支持藍牙4.0 BLE的。不過昨天剛剛在中國舉辦的Windows Phone 8.1 Update 1表明,1520、1320、1020等設備馬上就要迎來這次關鍵的系統更新,更新以后就可以開發藍牙4.0 BLE應用了。另外,已經在市場上可以買到了Lumia 630和Lumia 930是原生的Windows Phone 8.1系統,他們是支持藍牙4.0 BLE的。這里,我使用的是Lumia 630的設備,系統版本號是8.10.12359.845。

藍牙設備用的是Nokia Treasure Tag,淘寶上有賣,國內好像沒有出行貨。對於這個小東西,我想很多人可能不知道。其實,這個東西對於那些馬虎愛丟東西的人比較有用,我們可以把車鑰匙掛在上面,或者把它和錢包等重要的東西放在一起,同時與手機通過藍牙連接起來,只要這個Tag與手機之間的距離超過一定范圍,手機和Tag就會發出警報提醒用戶。而當手機和 Treasure Tag 距離非常遠的時候,可以通過 HERE 地圖定位出位置。Store中有專門的應用Nokia Treasure Tag,用於實現上述功能。下面給出實驗用到的設備,左邊的是Treasure Tag,中間的是Lumia 630,右邊的是待追蹤的鑰匙,如圖1所示。

clip_image002

圖1

 

3. 准備

如果在Windows Phone上第一次使用Treasure Tag,我們需要進行配對,第一次使用配對成功以后,后面就不需要再進行這個操作了。首先,在設置->藍牙中打開藍牙,等待Nokia Proximity Sensor的出現,然后點擊配對,PIN碼是0000.如下圖2所示。

clip_image003

圖2

連接以后,我們就可以創建應用了。

 

4. 創建應用

    關於Nokia Treasure Tag的應用程序處理,可以參考今年Build大會上的課程《Building Great Bluetooth Apps for Windows Phone》,目前在Channel9上可以看到這個視頻。這個視頻所對應的代碼也可以在msdn的code sample網頁上找到:Keep The Keys (Bluetooth LE)。源代碼工程包含三個項目:KeepTheKeys、KeepTheKeysBackground和KeepTheKeysCommon。

需要注意的地方有以下幾點:

 

4.1在應用的Package.appxmanifest文件中,添加以下Capabilities,因為這個和Treasure Tag的藍牙通信有關:

<Capabilities>

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

<m2:Device Id="any">

<m2:Function Type="serviceId:1803" />

</m2:Device>

</m2:DeviceCapability>

</Capabilities>

 

4.2 后台任務

關於Treasure Tag的任務,是以后台方式運行的,這個工程是winmd的工程.

 

4.3 在main project中需要添加對這個后台任務的引用,如下圖3所示。

clip_image004

圖3

 

4.4 在Package.appxmanifest文件的Application中,將"Toast capable" 設置為"Yes",因為應用要用到Toast消息,如下圖4所示。

clip_image006

圖4

 

4.5 在Package.appxmanifest文件的Declarations中,添加"Background Task"這一項,設置其EntryPoint為"KeepTheKeysBackground.KeyFobTask",如下圖5所示。

clip_image008

圖5

 

4.6 Treasure Tag中提供的服務是GATT Service中標准的LinkLoss服務,並不包含如TxPower等等其他服務。

應用程序運行以后,主頁面顯示的是設備頁面,即藍牙能夠搜索到的當前BLE 4設備,如下圖6所示。

clip_image009

圖6

點擊其中的Nokia Proximity Sensor,進行報警的設置。如下圖7所示。

clip_image010

圖7

在Tag遠離手機以后,Tag端會發出聲音提示。手機端也會在Action Center中出現消息,如下圖8所示。

clip_image011

圖8

資源:

1. Channel 9:Building Great Bluetooth Apps for Windows Phone

2. MSDN Code Sample:Keep The Keys (Bluetooth LE)

3. Windows Store:Nokia Treasure Tag


免責聲明!

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



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