使用Microsoft Band保持连接打开

时间:2016-01-10 13:01:21

标签: c# microsoft-band

我正在开发一个应用程序,通过按下Band上的按钮,用手机拍照。在发布模式下运行应用程序时会出现一个奇怪的问题。

当我在调试模式下运行应用程序时,我可以保持连接打开以侦听Band事件。 但是当我在发布模式下构建时,TileButtonPressed事件不再被触发。 我不知道这是一个错误还是我连接方式不好。 如果我以错误的方式连接,只要应用程序正在运行,我应该如何保持连接打开?

客户端变量用于类中的各种函数。

这是我用来连接和监听事件的代码。

    private async void BandConnection()
    {
        btnRetry.Visibility = Visibility.Collapsed;
        grStatus.Visibility = Visibility.Visible;
        tbStatus.Text = "Looking for your Band...";
        if (!await HasBand())
        {
            btnRetry.Visibility = Visibility.Visible;
            tbStatus.Text = "No Band detected!";
            return;
        }
        tbStatus.Text = "Connecting...";
        client = await BandClientManager.Instance.ConnectAsync(getPairedDevice[0]);
        tbStatus.Text = "Connected!";
        string bandVersion = await client.GetFirmwareVersionAsync();
        string bandHWversion = await client.GetHardwareVersionAsync();

        Debug.WriteLine("Band FW version: " + bandVersion);
        Debug.WriteLine("Band HW version: " + bandHWversion);
        current = Window.Current.Dispatcher;
        await client.TileManager.StartReadingsAsync();

        client.TileManager.TileButtonPressed += async (sender, e) =>
        {
            var buttonId = e.TileEvent.ElementId;
            var pageId = e.TileEvent.PageId;
            var tileId = e.TileEvent.TileId;
            Debug.WriteLine(buttonId + " - " + pageId + " - " + tileId);
            if (buttonId == 1)
            {
                // Take picture
                await current.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async () => {
                    await TakePhotoAsync();

                });
            }
            if (buttonId == 2)
            {
                // Record video
                await current.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async () => {
                    if (!_isRecording)
                    {
                        await StartRecordingAsync();
                    }
                    else
                    {
                        await StopRecordingAsync();
                    }

                    // After starting or stopping video recording, update the UI to reflect the MediaCapture state
                    UpdateCaptureControls();

                });
            }
            if (buttonId == 3)
            {
                // Toggle flash
                await current.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async () => {
                    ToggleFlash();
                });
            }

            if (buttonId == 4)
            {
                await current.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async () => {
                    SwitchCamera();
                });
            }
        };
        grStatus.Visibility = Visibility.Collapsed;

    }

1 个答案:

答案 0 :(得分:1)

好的,我联系了Microsoft Band团队,关于这个问题,这是他们的回复:

  

这是使用.net本机编译>选项构建的UWP应用程序的已知问题(发布版本的默认设置)。

     

我们有一个解决方案,我们很快就会推出。在此之前,plz继续构建> debug。

     

此致

     

阿里

编辑:NuGet包已经按照承诺更新并且现在正常工作