检测connected/disconnectedandroid磨损装置

Detecting connected/disconnected android wear device

我目前正在做一个 android 穿戴应用程序,它有两种模式:连接(与手机配对 phone)和断开连接。我查看了此线程 (How to detect if android device is paired with android wear watch)。我添加了侦听器以检测何时找到节点。

@Override
public void onPeerConnected(Node node) {
    Log.d(TAG, "CONNECTED");          
}

@Override
public void onPeerDisconnected(Node node) {
    Log.d(TAG, "PEER DISCONNECTED");
}

有以下几种情况: - 如果移动应用程序启动,穿戴应用程序将检测到一个节点并进入连接模式。 - 如果移动应用程序被终止,它会在被销毁之前向手表发送一条消息,手表进入断开连接模式。 - 如果蓝牙连接丢失,Wear 应用会进入断开连接模式。

我在做这件事的过程中有点迷茫。我怎么知道是否配对了正确的节点? (包含该应用程序的手机)?

编辑:

这是我使用的代码:

@Override
public void onCreate(){


    mApiClient = new GoogleApiClient.Builder(this)
            .addApi(Wearable.API)
            .addConnectionCallbacks(this)
            .build();

    Toast.makeText(MainActivity.s_instance.getApplicationContext(), "mApiClient : " + mApiClient, Toast.LENGTH_SHORT).show();

    if (mApiClient != null && !(mApiClient.isConnected() || mApiClient.isConnecting()))
        mApiClient.connect();

    setupNode();

    Wearable.CapabilityApi.addCapabilityListener(
            mApiClient,
            capabilityListener,
            CAPABILITY_NAME);

    //Listener to check connection with the mobile (bluetooth enabled/disabled and device detected)
    super.onCreate();
}

private void setupNode() {
    new Thread(new Runnable() {
        @Override
        public void run() {
            if (mApiClient != null && !(mApiClient.isConnected() || mApiClient.isConnecting()))
                mApiClient.blockingConnect(CONNECTION_TIME_OUT_MS, TimeUnit.MILLISECONDS);

            Wearable.CapabilityApi.getCapability(
                    mApiClient, CAPABILITY_NAME,
                    CapabilityApi.FILTER_REACHABLE).setResultCallback(new ResultCallback<CapabilityApi.GetCapabilityResult>() {
                @Override
                public void onResult(CapabilityApi.GetCapabilityResult result) {
                    Toast.makeText(MainActivity.s_instance.getApplicationContext(), "TRYING TO GET NODE", Toast.LENGTH_SHORT).show();

                    if (result.getCapability() == null) {
                        Toast.makeText(MainActivity.s_instance.getApplicationContext(), "WE DETECTED NO CAPABILITY", Toast.LENGTH_SHORT).show();
                    } else {
                        Toast.makeText(MainActivity.s_instance.getApplicationContext(), "WE DETECTED A CAPABILITY : " + result.getCapability(), Toast.LENGTH_SHORT).show();
                    }
                    updateCapability(result.getCapability());
                }
            });
        }
    }).start();
}

为什么不使用 CapabilitApi?如果您的移动应用程序提供了您感兴趣的某种功能,您可以使用这些 api 来查询提供该功能的节点(连接的和附近的)。这不就是你想要的吗?