使用Microsoft Band保持连接打开

本文关键字:连接 Microsoft Band 使用 | 更新日期: 2023-09-27 18:29:37

我正在开发一个应用程序,可以通过按下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;
    }

使用Microsoft Band保持连接打开

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

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

我们有一个很快就会推出的解决方案。直到那时plz继续构建>调试。

问候

阿里

编辑:NuGet包已经按照承诺进行了更新,现在运行良好