Advertisement
FrayxRulez

Microsoft.Band.Extended sample

Mar 25th, 2015
603
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.36 KB | None | 0 0
  1.         private async void Button_Click(object sender, RoutedEventArgs e)
  2.         {
  3.             var devices = await BandClientManager.Instance.GetBandsAsync();
  4.             if (devices.Length > 0)
  5.             {
  6.                 // Connects to extended IBandClient
  7.                 var band = await BandClientManager.Instance.ConnectCoreAsync(devices[0]);
  8.  
  9.                 // Load layout from Content
  10.                 var layoutFile = await Package.Current.InstalledLocation.GetFileAsync("Assets\\custom_1.lblob");
  11.                 var layout = await FileIO.ReadBufferAsync(layoutFile);
  12.  
  13.                 // Initialize a new Layouts collection
  14.                 var layouts = new BandLayoutCollection();
  15.                 // Add the layout to the collection, setting his index to 0 (Same used in SendPageUpdateAsync)
  16.                 // Currently layouts limit is 5
  17.                 layouts.SetLayout(0, new BandLayout(layout.ToArray()));
  18.  
  19.                 // Loads tile and badge icons (Badge is the small one)
  20.                 var tile = await LoadIcon("ms-appx:///Assets/Strapp-FR.png");
  21.                 var badge = await LoadIcon("ms-appx:///Assets/Strapp-FR-Badge.png");
  22.  
  23.                 // Loads additional icon used in the layout
  24.                 var icon = await LoadIcon("ms-appx:///Assets/Icon.png");
  25.  
  26.                 // Creates the tile and adds the additional icon
  27.                 var strapp = new BandTile(baseGuid)
  28.                 {
  29.                     Name = "FrayxRulez",
  30.                     TileIcon = tile,
  31.                     SmallIcon = badge
  32.                 };
  33.                 strapp.AddIcon(icon);
  34.  
  35.                 // Adds the tile, asking user for the consent
  36.                 await band.TileManager.AddTileAsync(strapp, layouts);
  37.  
  38.                 // Collection of "values" to display in pages
  39.                 // Ids are the same used in the layout
  40.                 var fields = new BandTileElementCollection();
  41.                 fields.AddGlyph(11, 2);
  42.                 fields.AddTextBlock(12, "Line 1");
  43.                 fields.AddGlyph(21, 2);
  44.                 fields.AddTextBlock(22, "Line 2");
  45.                 fields.AddGlyph(31, 2);
  46.                 fields.AddTextBlock(33, "Line 3");
  47.  
  48.                 // Updates (or creates) the pages, based on their ID (You can choose them, an id for every page you want)
  49.                 await band.TileManager.SendPageUpdateAsync(baseGuid, page1Guid, 0, fields);
  50.                 await band.TileManager.SendPageUpdateAsync(baseGuid, page2Guid, 0, fields);
  51.  
  52.                 band.Dispose();
  53.             }
  54.         }
  55.  
  56.         // Helper method
  57.         private async Task<BandIcon> LoadIcon(string uri)
  58.         {
  59.             StorageFile imageFile = await StorageFile.GetFileFromApplicationUriAsync(new Uri(uri));
  60.  
  61.             using (IRandomAccessStream fileStream = await imageFile.OpenAsync(FileAccessMode.Read))
  62.             {
  63.                 WriteableBitmap bitmap = new WriteableBitmap(1, 1);
  64.                 await bitmap.SetSourceAsync(fileStream);
  65.                 return bitmap.ToBandIcon();
  66.             }
  67.         }
  68.  
  69.         // Id of the tile
  70.         private Guid baseGuid = Guid.Parse("4566d8b9-0006-435d-aeb1-2b01803cdf6c");
  71.  
  72.         // Ids of the pages
  73.         private Guid page1Guid = Guid.Parse("4566d8b9-0002-435d-aeb1-2b01803cdf6c");
  74.         private Guid page2Guid = Guid.Parse("4566d8b9-0003-435d-aeb1-2b01803cdf6c");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement