我正在尝试在掌上电脑和可穿戴应用之间进行通信,我正在尝试使用var items = $(this).parent().siblings().find('.year-dropdown').find('.date, .time, .details').not('.clone').addClass('clone').clone();
var final = '<div class="new">';
$(items).each(function(i,v){
final+=v;
if (i%4 == 0 ) {
final+='</div><div class="new">'
}
});
final+='</div>';
$(final).appendTo('#all-events');
找到正确的Node
。我知道设备已连接 - 其他应用和示例工作正常 - 但是当我运行我的可穿戴应用时,既不会致电CapabilityApi
,也不会getCapability()
返回任何getAllCapabilities()
。
其他一切似乎都能正常工作 - 事实上,如果我使用Nodes
并且使用NodeApi
发送消息似乎也能正常工作 - 我可以找到手持设备就好了因某些原因,设备不会被广告。我已在res / values文件夹中正确设置了wear.xml,并确保两个应用程序在build.gradle中设置了相同的applicationId。
我的可穿戴应用中对MessageApi
的调用如下所示:
CapabilityApi
但Wearable.CapabilityApi.getCapability(mGoogleApiClient, SOME_CAPABILITY, CapabilityApi.FILTER_REACHABLE)
.setResultCallback(new ResultCallback<CapabilityApi.GetCapabilityResult>() {
@Override
public void onResult(CapabilityApi.GetCapabilityResult result) {
if (!result.getStatus().isSuccess()) {
return;
}
final CapabilityInfo info = result.getCapability();
updateCapabilities(info);
}
});
实例中的Set<Node>
始终为空!同样使用CapabilityInfo
始终返回空Wearable.CapabilityApi.getAllCapabilities()
!
为了记录,我的掌上电脑app的wear.xml看起来像这样:
List<Node>
我已经梳理了我的代码库,寻找错误,但我找不到它。没有任何意义,因为没有宣传这些功能。
答案 0 :(得分:6)
对手持设备和可穿戴应用使用相同的调试证书,否则CapabilityApi
无法正常工作。
错误结果非常简单!修复它只需要编辑build.gradle中的signingConfig。
我使用通用调试证书来签署掌上电脑应用的调试版本:
signingConfigs {
debug {
storeFile file("debug.jks")
storePassword ...
keyAlias ...
keyPassword ...
}
}
buildTypes {
debug {
signingConfig signingConfigs.debug
}
release {
...
}
}
但是我的可穿戴应用程序没有使用相同的调试证书,它显然使用了我的IDE提供的默认调试证书。似乎当手持和可穿戴应用程序没有使用相同的证书时 - 即使它只是一个调试版本 - 那么另一个应用程序无法找到设备的功能。实际上这很有意义,是什么让整个事情变得混乱,其他一切看起来都很好,因此很难找到像这样的问题。
在我的情况下,我从掌上电脑app的build.gradle中删除了常见的调试歌曲配置,CapabilityApi
立即开始工作。我认为为可穿戴设备和掌上电脑应用程序设置相同的debug signingConfig也可以解决问题,但我现在还没有测试过。
答案 1 :(得分:1)
检查是否:
答案 2 :(得分:0)
如果您在任何一侧都有两种构建类型(发布和调试),请添加另一种。就像我在移动端有两种构建类型:
//Mobile side
buildTypes {
release {
signingConfig signingConfigs.release
}
debug {
applicationIdSuffix = ".debug" // just add debug build type to your watch build.gradle file as well
}
}
所以我添加了
//wear side
debug {
applicationIdSuffix = ".debug"
}
但是不要忘记两边的applicationidsuffix应该是一样的