SDK umožňuje dvojí poslání notifikací do náramku (do konkrétní dlaždice aplikace). Je možné poslat pouze dialog, který se na chvíli zobrazí na displayi náramku - ten za chvíli zmizí nebo ho lze "zahodit" pomocí dismiss. Nebo lze poslat zprávu, která se volitelně také může zobrazit na náramku jako dialog, nicméně na rozdíl od dialogu zůstane přístupná pod dlaždicí do které byla poslána - navíc dlaždice zobrazuje počet nepřečtených zpráv (pokud to nemá zakázáno).
Dialog
try
{
IBandInfo[] pairedBands = await BandClientManager.Instance.GetBandsAsync();
if (pairedBands.Length < 1)
{
output.Text = "Nespárován žádný MS Band!";
return;
}
using (IBandClient bandClient = await BandClientManager.Instance.ConnectAsync(pairedBands[0]))
{
IEnumerable tiles = await bandClient.TileManager.GetTilesAsync();
if (tiles.ElementAt(0) == null)
{
output.Text = "Aplikace nemá žádné dlaždice";
return;
}
// poslání dialogu - (ID dlazdice, titulek, telo zpravy)
await bandClient.NotificationManager.ShowDialogAsync(tiles.ElementAt(0).TileId, "Dialog title", "Dialog body");
output.Text = "Dialog odeslán!";
}
}
catch (BandException ex)
{
output.Text = "zachycena výjimka: " + ex.Message;
}
Zpráva
try
{
IBandInfo[] pairedBands = await BandClientManager.Instance.GetBandsAsync();
if (pairedBands.Length < 1)
{
output.Text = "Nespárován žádný MS Band!";
return;
}
using (IBandClient bandClient = await BandClientManager.Instance.ConnectAsync(pairedBands[0]))
{
IEnumerable tiles = await bandClient.TileManager.GetTilesAsync();
if (tiles.ElementAt(0) == null)
{
output.Text = "Aplikace nemá žádné dlaždice";
return;
}
// poslání zprávy - parametry: ID dlazdice, nadpis, telo zpravy, zobrazene datum u zpravy, flag = s nebo bez dialogu
await bandClient.NotificationManager.SendMessageAsync(tiles.ElementAt(0).TileId, "Titulek", "Telo zprávy", DateTimeOffset.Now, MessageFlags.None);
output.Text = "Zpráva odeslána!";
}
}
catch (BandException ex)
{
output.Text = "zachycena výjimka: " + ex.Message;
}
V MS Bandu můžete vytvářet nové dlaždice, počet vytvořených dlaždic vaší aplikací je limitován počtem aktuálně volných slotů v náramku (i to lze zjistit v aplikaci).
Takto vytvořené dlaždice lze spravovat, mazat a dále s nimi v rámci aplikace pracovat.
Výpis volných slotů v náramku
try
{
IBandInfo[] pairedBands = await BandClientManager.Instance.GetBandsAsync();
if (pairedBands.Length < 1)
{ //CHYBA
return;
}
using (IBandClient bandClient = await BandClientManager.Instance.ConnectAsync(pairedBands[0]))
{
// počet volných slotů
int tileCapacity = await bandClient.TileManager.GetRemainingTileCapacityAsync();
output.Text = "Dostupná kapacita dlaždic: " + tileCapacity.ToString();
}
}
catch (BandException ex)
{
// handle a Band connection exception
}
Vložení nové dlaždice
try
{
IBandInfo[] pairedBands = await BandClientManager.Instance.GetBandsAsync();
if (pairedBands.Length < 1)
{
output.Text = "Nespárován žádný MS Band!";
return;
}
using (IBandClient bandClient = await BandClientManager.Instance.ConnectAsync(pairedBands[0]))
{
int tileCapacity = await bandClient.TileManager.GetRemainingTileCapacityAsync();
if (tileCapacity<1)
{
output.Text = "Nedostatečná kapacita volných slotů v náramku!";
return;
}
//přidání dlaždice do Bandu
if (await bandClient.TileManager.AddTileAsync(CreateTile(nazev)))
{
output.Text = "Přidána dlaždice: " + nazev;
}
}
}
catch (BandException ex)
{
output.Text = "zachycena výjimka: " + ex.Message;
}
public BandTile CreateTile(String nazev)
{
// vytvoření small tile ikony (24x24px)
WriteableBitmap smallIconBitmap = new WriteableBitmap(24, 24);
BandIcon smallIcon = smallIconBitmap.ToBandIcon();
// vytvoření ikony (Band1: 46x46px, Band2: 48x48px)
WriteableBitmap tileIconBitmap = new WriteableBitmap(46, 46);
BandIcon tileIcon = tileIconBitmap.ToBandIcon();
Guid tileGuid = Guid.NewGuid(); //identifikátor
BandTile tile = new BandTile(tileGuid)
{
IsBadgingEnabled = true, // povolit badging (počet nepřečtených zpráv)
Name = nazev,
SmallIcon = smallIcon,
TileIcon = tileIcon
};
return tile;
}
Výpis dlaždic aplikace
try
{
IBandInfo[] pairedBands = await BandClientManager.Instance.GetBandsAsync();
if (pairedBands.Length < 1)
{
output.Text = "Nespárován žádný MS Band!";
return;
}
using (IBandClient bandClient = await BandClientManager.Instance.ConnectAsync(pairedBands[0]))
{
IEnumerable<BandTile> tiles = await bandClient.TileManager.GetTilesAsync();
output.Text = "Dlaždice:";
foreach (var item in tiles)
{
output.Text += "\n" + item.Name;
}
}
}
catch (BandException ex)
{
output.Text = "zachycena výjimka: " + ex.Message;
}
Jednoduché zjištění verze HW a FW MS Bandu
string fwVersion;
string hwVersion;
try
{
IBandInfo[] pairedBands = await BandClientManager.Instance.GetBandsAsync();
if (pairedBands.Length < 1) //CHYBA
{
return;
}
// HW a FW version
using (IBandClient bandClient = await BandClientManager.Instance.ConnectAsync(pairedBands[0]))
{
fwVersion = await bandClient.GetFirmwareVersionAsync();
hwVersion = await bandClient.GetHardwareVersionAsync();
}
}
catch (BandException ex)
{
// handle a Band connection exception
}
Po vytvoření nového projektu ve Visual Studiu 2015 (nebo 2013) - File - New - Project - Blank App (Universal Windows) musíme přidat do appxmanifestu Capabilities Bluetooth abychom mohli v aplikaci bluetooth používat.
Dále přidáme NuGet balíček Microsoft.Band, jednoduchým způsobem klikneme pravým tlačítkem na References - Manage NuGet Packages..
Dáme vyhledat "band" a nainstalujeme jej.
Po vložení namespaců:
using Microsoft.Band;
using Microsoft.Band.Notifications; //zde pro vibraci
se již můžeme pustit do samostatného připojení, kdy po spojení s náramkem necháme band jednou zavibrovat.
try
{
IBandInfo[] pairedBands = await BandClientManager.Instance.GetBandsAsync();
if (pairedBands.Length < 1)
{
//CHYBA
return;
}
// Connect to Microsoft Band.
using (IBandClient bandClient = await BandClientManager.Instance.ConnectAsync(pairedBands[0]))
{
await bandClient.NotificationManager.VibrateAsync(VibrationType.NotificationOneTone);
}
}
catch (BandException ex)
{
// handle a Band connection exception
}
Po spuštění aplikace musíme potvrdit připojení:
A zavibrování náramku potvrdí, že vše funguje jak má.