2015-03-03 3 views
6

Я хотел бы создать приложение, похожее на приложение Starbucks, входящее в группу. Я хочу отобразить штрих-коды. Я могу сгенерировать штрих-коды в виде изображений JPG в облаке или на локальном устройстве, но мне нужно иметь возможность отображать их на экране группы. До сих пор я не нашел способ использовать Band Client для отображения изображения внутри приложения.Отображение изображения на Microsoft Band

Группа клиент имеет следующие менеджеры:

  • Диспетчер уведомлений
  • Персонализация Менеджер
  • Tile менеджер
  • Sensor Менеджер

Ближайший вещь, которую я могу думать Уведомление Менеджером, который будет делать это, но единственными методами являются следующие:

  • SendMessageAsync
  • ShowDialogAsync
  • VibrateAsync

Ни один из них не делают работу. Есть идеи? Сейчас я думаю, что SDK довольно ограничен в том, что он может сделать с точки зрения пользовательского интерфейса.

+0

Ugly hack warning: вы можете отправить штрих-код на «MeTile» (основная плитка): D Хорошо, не очень хорошее решение, но прямо сейчас его единственное место, которое вы добавляете, толкает изображение. Таким образом, уродливым взломом было бы получить MeTile, сохранить используемое изображение, нажать штрих-код, а затем позволить пользователю сбросить предыдущее изображение или попытаться сбросить его после того, как X прошло. Не уверен, насколько часы на вершине изображения будут мешать чтению штрих-кода. –

ответ

1

В настоящее время Microsoft Band SDK Preview не имеет возможности создавать собственные макеты для фрагментов. Ваши наблюдения верны, вы можете создать плитку, на которую вы можете отправлять сообщения, и последние 8 сообщений (в соответствии с их отметками времени) будут отображаться в плитке.

4

Штрих-коды теперь поддерживаются в SDK, который был обновлен сегодня (и еще несколько изменений). SDK также вне поля зрения woho!

новый:

  • богатого содержания плитка - штрих-кода и иконки
  • товара
  • Списка Мы можем иметь кнопки! (Не могу поверить, что я в восторге от кнопки)
  • Мы можем слушать плитки и кнопки событий
  • Доступ к новым DATA- калорий
  • Windows Phone фон поддержки
  • IOS удаленных или локальных уведомлений

Вот несколько штрих-кодов из загруженного приложения нового образца.

 using (IBandClient bandClient = await BandClientManager.Instance.ConnectAsync(pairedBands[0])) 
    { 
     var myCardTextBlock = new TextBlock() 
     { 
      Color = Colors.Blue.ToBandColor(), 
      ElementId = 1, 
      Rect = new PageRect(0, 0, 200, 25) 
     }; 
     var barcode = new Barcode(BarcodeType.Code39) 
     { 
      ElementId = 2, 
      Rect = new PageRect(0, 0, 250, 50) 
     }; 
     TextBlock digitsTextBlock = new TextBlock() 
     { 
      ElementId = 3, 
      Rect = new PageRect(0, 0, 200, 25) 
     }; 
     FlowPanel panel = new FlowPanel(myCardTextBlock, barcode, digitsTextBlock) 
     { 
      Orientation = FlowPanelOrientation.Vertical, 
      Rect = new PageRect(0, 0, 250, 100) 
     }; 


     Guid myTileId = new Guid("D781F673-6D05-4D69-BCFF-EA7E706C3418"); 
     BandTile myTile = new BandTile(myTileId) 
     { 
      Name = "My Tile", 
      TileIcon = await LoadIcon("ms-appx:///Assets/SampleTileIconLarge.png"), 
      SmallIcon = await LoadIcon("ms-appx:///Assets/SampleTileIconSmall.png") 
     }; 
     myTile.PageLayouts.Add(new PageLayout(panel)); 


     await bandClient.TileManager.AddTileAsync(myTile); 

     PageData page = new PageData(
      Guid.NewGuid(), 
      0, 
      new TextBlockData(myCardTextBlock.ElementId.Value, "MY CARD"), 
      new BarcodeData(barcode.BarcodeType, barcode.ElementId.Value, "123456789"), 
      new TextBlockData(digitsTextBlock.ElementId.Value, "123456789")); 

     await bandClient.TileManager.SetPagesAsync(myTile.TileId, page); 

     this.viewModel.StatusMessage = "Done. Check the Tile on your Band (it's the last Tile)."; 
    } 
+0

Поддерживаются только два типа штрих-кодов, а QR-кода там нет. У меня такой же сценарий, когда я хочу прегенерировать JPG-изображение со штрих-кодом и просто хочу отображать изображение в группе. Является ли это возможным? –

+0

@ АлексейСтрах видит мой ответ. Это возможно, но не так просто или полезно. –

0

Существует способ. Это очень сложно и ограничено определенным размером данных.

Можно добавить иконку (на самом деле до 8, я думаю) на вашу плитку.

Иконки должны быть прозрачным PNG размером 48x48.

Для QR-кода это означает, что у него белое изображение, где черные части QR-кода прозрачны.

enter image description here

Выше изображения 1. Если вы окрашиваете черный в альфа, используйте, например, webqr, тогда вы можете проверить и увидеть, что он работает. (Я не могу продемонстрировать с помощью PNG, потому что SO не любит прозрачность).

Загрузка этого знака в обычную для значка (см. Руководства), за исключением того, что вы должны установить ColorSource в обычную и Color (255,255,255).

Я был успешно загружен и сканировал это на своей группе.

Однако я бы отметил, что он не особенно удобен для пользователя, так как значок настолько мал на полосе, что у сканера могут возникнуть проблемы с его выбором.

Я отправлю отзыв в MS, потому что я думаю, что это будет очень полезная функция, и внедрение QR-кодов должно быть для них тривиальным.

Смежные вопросы