Windows 8.1上的Microsoft Band SDK

3
也许我有点疯狂,但我该如何在Windows 8.1机器上访问手环?
任何对BandClientManager的调用都会返回0个配对设备,而我不知道如何将手环与Windows 8.1机器“配对”。
显然,我可以轻松地让Microsoft Band Desktop在任何桌面上同步,但是我的Surface设备上没有蓝牙设备能够检测到手环。
代码示例明显显示了在Windows 8.1上连接。我错过了什么才能让手环出现?

澄清一下,在任何情况下,我都无法从BandClientManager调用中获取任何Windows 8.1 PC的BandClients...有人成功过并能描述一下吗? :) - Codesmith
5个回答

6
有几个可以尝试并可能有效的事情是: 禁用PC的蓝牙适配器电源管理
  1. 在您的PC上,启动设备管理器(例如,右键单击Windows 8.1开始按钮并选择“设备管理器”)。
  2. 在设备管理器中,转到蓝牙- > ,右键单击并选择“属性”。
  3. 转到属性对话框的“电源管理”选项卡,并确保未选中“允许计算机关闭此设备以节省电源”复选框。
重新将手环与PC配对:
  1. 在手环上,转到设置磁贴并点击蓝牙图标,然后将蓝牙状态从“打开”更改为“配对”。
  2. 在PC上,进入蓝牙“显示蓝牙设备”,取消配对手环(如果之前已与PC配对),然后开始新配对。

Jeff,这最终是解决问题的关键,意味着手动将Band更改为“配对”(然后允许真正的PIN配对等)。因此,代码不是问题,清单也不是问题,仅仅使用这种技术使Band正确配对就解决了一切。真诚感谢! - Codesmith
我只想说这些指令一开始对我并没有起作用,最终我不得不注销并对我的手环进行工厂重置,即使如此,我还要多次将手环与我的电脑重新配对,并为了确保其正常运作而对手环和电脑进行几次电源循环。 - Scott Lerch

1

是的,它确实有很好的示例,但代码从未返回任何Band实例。这不是代码问题(因为我已经在商店中拥有Band应用程序),而是让它在Windows 8.1上运行的问题。即使在SDK示例中,Windows 8.1上也从未返回实例,即使Band显示为已连接和配对的蓝牙设备。你解决了这个问题吗? - Codesmith
也许这是蓝牙适配器的问题?我曾经在使用低功耗蓝牙时遇到过类似的问题。在我的电脑上安装的蓝牙适配器无法正常工作,但在我的手机上和使用外部蓝牙适配器时可以正常工作。这可能是原因。 - Laurent Ellerbach

0

我刚在我的Windows 10(桌面)机器上进行了快速测试。我通过蓝牙将我的手环与机器配对 - 因为它是一台旧机器,所以我使用基于USB的蓝牙适配器 - 并在Visual Studio 2013中创建了一个新的、空白的Windows 8.1商店项目。我应用了最新的Band SDK NuGet包(v1.3.10417.1)。我在MainPage中添加了一个按钮,并添加了以下单击处理程序:

private async void Button_Click(object sender, RoutedEventArgs e)
{
    var bands = await BandClientManager.Instance.GetBandsAsync();
    var band = bands.FirstOrDefault();

    if (band != null)
    {
        var client = await BandClientManager.Instance.ConnectAsync(band);

        string name = await client.GetFirmwareVersionAsync();
    }
}

我在本地机器上(不是模拟器)启动了调试器应用程序,并能够枚举、连接和检索我的手环的固件版本。

我只有一台旧的Surface RT电脑(无法运行Visual Studio),目前所有台式机都在运行Windows 10,因此无法复制您的确切情况。 话虽如此,如果它可以在一个带有外部蓝牙适配器的预发布操作系统上的旧机器上工作,那么我会很惊讶它不能在一个集成了蓝牙适配器并运行已发布和稳定操作系统的新机器上运行(例如Surface)。

需要记住的一点是,手环仅会“记住”(即连接到)最后一个与其蓝牙配对的设备,无论这些设备是否仍显示手环作为已配对的设备(反之亦然)。 如果您在测试手环时切换使用手机应用和商店(桌面)应用,则必须将手环重新配对(而不是恢复出厂设置)到新设备。


1
哎呀,糟糕了。这些是我在Windows 8.1和Windows 10机器上遵循的简单场景,但都没有成功。我总是可以通过蓝牙将手环配对,但代码始终返回0个实例。如果您有其他想法,请告诉我。 - Codesmith

0

我有同样的问题,我正在使用一台8.1戴尔笔记本电脑,它在蓝牙连接等方面看到了这个设备,但是当我尝试在我的应用程序中连接时,它无法看到这个设备。我甚至尝试将我的手环连接到Windows手机上,但是我的应用程序在连接时崩溃了。

奇怪的是,当它与我的iPhone配对时,它会连接两个设备。在我的蓝牙设置中有两个条目。当连接到笔记本电脑和Windows手机时,它显示为1,但偶尔另一个设备会短暂地出现然后消失,你无法连接它。这可能是一个误导,但有点奇怪...

代码没有做任何特殊的事情: var pairedBands = await Microsoft.Band.BandClientManager.Instance.GetBandsAsync(); if (pairedBands.Length < 1) { // 显示一些错误消息 return; }

pairedBands总是返回0。

Windows手机dll是8.1.0.0....救命啊!这让我发疯了。


欢迎来到 Stack Overflow!这个应该作为对问题发起者的评论而不是答案。 - Dan Scally

0

您是否已经在Windows上安装了Band Sync应用并与手环配对?

我还没有在Windows 8.1机器上尝试过这种情况,但在Windows Phone 8.1中的Windows Store应用程序中使用BandClientManager没有任何问题。

Windows 8.1 Band Sync 应用程序 http://www.microsoft.com/en-us/download/details.aspx?id=44579


是的,我没有问题通过任何工具进行同步,并且我可以让手环在经过几次出厂设置后通过蓝牙配对/连接。但是我从来无法让BandClientManager“看到”手环。即使使用SDK示例,它们始终返回0个实例。到目前为止,我从未找到过任何人在Windows 8.1上实际上已经获取了任何实例,并希望有人能够在Windows 8.1/10上实际上让它识别实例。 :) - Codesmith

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接