6

我想创建一个类似于乐队附带的星巴克应用程序的应用程序。我想显示条形码。我可以在云端或本地设备上将条形码生成为 JPG 图像,但我需要能够在乐队的屏幕上显示它们。到目前为止,我还没有找到使用 Band Client 在应用程序内显示图像的方法。

乐队客户有以下经理:

  • 通知管理器
  • 个性化管理器
  • 瓷砖管理器
  • 传感器管理器

我能想到的最接近的事情是通知管理器会这样做,但唯一的方法是:

  • 发送消息异步
  • ShowDialogAsync
  • 振动异步

没有一个可以完成这项工作。有任何想法吗?现在我认为 SDK 从 UI 的角度来看它可以做的事情相当有限。

4

3 回答 3

4

今天更新的 SDK 现在支持条形码(以及更多更改)。SDK 也不再预览 woho!

新的:

  • 丰富的内容图块——条形码和图标
  • 项目清单
  • 我们可以有按钮!(不敢相信我对按钮如此兴奋)
  • 我们可以监听 tile 和 button 事件
  • 访问新数据——卡路里
  • Windows 手机后台支持
  • 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).";
    }
于 2015-04-30T23:54:34.087 回答
1

目前,Microsoft Band SDK 预览版无法为磁贴创建自定义布局。您的观察结果是正确的,您可以创建一个可以向其发送消息的磁贴,最后 8 条消息(根据它们的时间戳)将显示在磁贴中。

于 2015-03-03T22:20:05.560 回答
0

有一种方法。这是非常棘手的,并且仅限于特定大小的数据。

可以将图标(我认为实际上最多 8 个)上传到您的磁贴。

图标必须是 48x48 透明 PNG。

对于 QR 码,这意味着具有白色图像,其中 QR 码的黑色部分是透明的。

在此处输入图像描述

上图是1。如果您将黑色着色为 alpha,然后使用例如webqr,那么您可以测试并查看它是否有效。(我不能用 PNG 演示,因为 SO 不喜欢透明度)。

将其上传到乐队对于图标来说是正常的(请参阅教程),除了您需要将其设置ColorSource为自定义和Color(255,255,255) 白色。

我成功地在我的 Band 上上传并扫描了它。

但是我会注意到它不是特别用户友好,因为乐队上的图标太小了,扫描仪可能很难捡起它。

我将向 MS 发布反馈,因为我认为这将是一个非常有用的功能,并且实现 QR 码对他们来说应该是微不足道的。

于 2016-04-19T16:16:44.127 回答