[英]Android Wear(Watch). Is there any way to detect that wear is connected to any device or not, from the wear only?
[英]What is the easiest way to detect if an Android Wear device is connected to the phone?
如果当前连接了Android Wear设备,我希望我的应用程序表现不同。 最简单的检测方法是什么?
我相信您可以使用Google Play服务中提供的这种方法 ,但是只是为了查看设备是否存在,似乎有很多开销。 还有其他办法吗?
NodeAPI可以通过以下简单方式检查您的Android Wear设备和手机是否已连接:
调用时,这是回调函数:
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设备上并不总是调用此侦听器。
声明时,必须使用Wearable.NodesApi.getConnnectedNodes()
API。
至少目前没有其他方法可以执行此操作。
您还可以拥有一个布尔值(例如mIsConnected),该值在onPeerConnected中设置为true,在onPeerDisconnected中设置为false。
如果您使用的是WearableListenerService ,那么这些方法将自动包含在内,而您只需重写它们:onPeerConnected(节点对等方)和onPeerDisconnected(节点对等方)。 如果要在Activity或其他方式中执行此操作,只需实现具有这些方法的NodeApi.NodeListener即可 。 确保将其添加到您的Google API客户端( addListener(mGoogleApiClient,this) )。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.