如果当前连接Android Wear设备,我希望我的应用行为不同.检测这个的最简单方法是什么?
我相信您可以使用Google Play服务中的this method,但这似乎是为了查看该设备是否存在而需要大量开销.还有其他方法吗?
最佳答案
NodeAPI可以通过以下简单方式检查您的Android Wear设备和手机是否已连接:
原文链接:/android/431100.html这是您致电时的回调函数:
private void checkNodeAPI(){
Wearable.NodeApi.getConnectedNodes(mGoogleApiClient).setResultCallback(this,1000,TimeUnit.MILLISECONDS);
}
//打回来
@Override
public void onResult(NodeApi.GetConnectedNodesResult getConnectedNodesResult) {
if (getConnectedNodesResult != null && getConnectedNodesResult.getNodes() != null){
mWearableConnected = false;
for (Node node : getConnectedNodesResult.getNodes()){
if (node.isNearby()){
mWearableConnected = true;
}
}
}
Log.v("TEST","mWearableConnected: " + mWearableConnected);
}
getConnectedNodes()是一个异步函数,所以结果只是在一段时间后返回,你无法立即得到它.
要在Android Wear连接/断开手机时接收活动,您可以使用以下功能添加监听器:
Wearable.NodeApi.addListener(mGoogleApiClient,this);
@Override
public void onPeerConnected(Node node) {
Log.v("TEST","onPeerConnected");
mWearableConnected = true;
}
@Override
public void onPeerDisconnected(Node node) {
Log.v("TEST","onPeerDisconnected");
checkNodeAPI();
}
但是这个侦听器并不总是在某些Android Wear设备上调用.