getPairedBands() returns Microsoft Band SDK 中没有设备
getPairedBands() returns no devices in Microsoft Band SDK
起初我以为这是我在做的事情,但在尝试了 Microsoft Band 包含的一个官方代码示例 (BandLayoutApp) 之后,我仍然无法使用 SDK 连接到我的 Band 2。我正在逐字使用示例项目及其包含的 AndroidManifest.xml.
Microsoft Band 2 已与我的 Nexus 6p 配对并正常运行。我每天都用它来锻炼,结果会同步到我 Android phone 上的 Microsoft Health App。我知道 Android 6.0.1 更新打破了与 Microsoft Health App 的兼容性并且刚刚更新,所以也许 SDK 还没有更新来解决这个问题?这只是我在排除故障并将健康应用程序版本与最新 SDK 版本匹配后的猜测(假设它们遵循相同的版本控制)。
我有一个较旧的 Android Phone (运行 Android 5.1) 我可以配对测试,但必须将手环恢复出厂设置才能做到这一点.
设备:Microsoft Band 2
设备固件版本:2.0.3923.0 26R
配对设备:Nexus 6p
Android OS: 6.0.1
Microsoft 健康应用程序版本:1.3.11217.1
手环SDK版本:1.3.10929.1
相关代码来自微软官方示例:
https://developer.microsoftband.com/bandSDK
private boolean getConnectedBandClient() throws InterruptedException, BandException
{
if (client == null) {
BandInfo[] devices = BandClientManager.getInstance().getPairedBands();
if (devices.length == 0) {
appendToUI("Band isn't paired with your phone.\n");
return false;
}
client = BandClientManager.getInstance().create(getBaseContext(), devices[0]);
}
else if (ConnectionState.CONNECTED == client.getConnectionState()) {
return true;
}
appendToUI("Band is connecting...\n");
return ConnectionState.CONNECTED == client.connect().await();
}
预期结果
下面的行应该 return 一个结果(我已经配对的 Microsoft Band):
BandInfo[] devices = BandClientManager.getInstance().getPairedBands();
实际结果
以下行 returns 未找到设备:
BandInfo[] devices = BandClientManager.getInstance().getPairedBands();
当前发布的 Android Microsoft Band SDK 版本将无法与 Android 6.0.1 一起使用,因为 Google 破坏了 SDK 用于连接的关键蓝牙 API 之一确定蓝牙设备是否为 Microsoft Band。
因此,为了回答您的问题,现在移动到较旧的 phone 几乎可以肯定会解决您的问题,但您必须在 Microsoft 发布带有解决方法的更新 SDK 后立即更新您的 SDK 版本.
编辑:
Microsoft 于 2016 年 1 月 6 日发布了解决此问题的新 SDK。
最新版本的 SDK 可以在这里找到:
http://developer.microsoftband.com/bandSDK
起初我以为这是我在做的事情,但在尝试了 Microsoft Band 包含的一个官方代码示例 (BandLayoutApp) 之后,我仍然无法使用 SDK 连接到我的 Band 2。我正在逐字使用示例项目及其包含的 AndroidManifest.xml.
Microsoft Band 2 已与我的 Nexus 6p 配对并正常运行。我每天都用它来锻炼,结果会同步到我 Android phone 上的 Microsoft Health App。我知道 Android 6.0.1 更新打破了与 Microsoft Health App 的兼容性并且刚刚更新,所以也许 SDK 还没有更新来解决这个问题?这只是我在排除故障并将健康应用程序版本与最新 SDK 版本匹配后的猜测(假设它们遵循相同的版本控制)。
我有一个较旧的 Android Phone (运行 Android 5.1) 我可以配对测试,但必须将手环恢复出厂设置才能做到这一点.
设备:Microsoft Band 2
设备固件版本:2.0.3923.0 26R
配对设备:Nexus 6p
Android OS: 6.0.1
Microsoft 健康应用程序版本:1.3.11217.1
手环SDK版本:1.3.10929.1
相关代码来自微软官方示例:
https://developer.microsoftband.com/bandSDK
private boolean getConnectedBandClient() throws InterruptedException, BandException
{
if (client == null) {
BandInfo[] devices = BandClientManager.getInstance().getPairedBands();
if (devices.length == 0) {
appendToUI("Band isn't paired with your phone.\n");
return false;
}
client = BandClientManager.getInstance().create(getBaseContext(), devices[0]);
}
else if (ConnectionState.CONNECTED == client.getConnectionState()) {
return true;
}
appendToUI("Band is connecting...\n");
return ConnectionState.CONNECTED == client.connect().await();
}
预期结果
下面的行应该 return 一个结果(我已经配对的 Microsoft Band):
BandInfo[] devices = BandClientManager.getInstance().getPairedBands();
实际结果
以下行 returns 未找到设备:
BandInfo[] devices = BandClientManager.getInstance().getPairedBands();
当前发布的 Android Microsoft Band SDK 版本将无法与 Android 6.0.1 一起使用,因为 Google 破坏了 SDK 用于连接的关键蓝牙 API 之一确定蓝牙设备是否为 Microsoft Band。
因此,为了回答您的问题,现在移动到较旧的 phone 几乎可以肯定会解决您的问题,但您必须在 Microsoft 发布带有解决方法的更新 SDK 后立即更新您的 SDK 版本.
编辑:
Microsoft 于 2016 年 1 月 6 日发布了解决此问题的新 SDK。 最新版本的 SDK 可以在这里找到: http://developer.microsoftband.com/bandSDK