繁体   English   中英

检测Android Wear设备是否已连接到手机的最简单方法是什么?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM