【发布时间】:2015-10-22 23:46:30
【问题描述】:
我目前正在做一个具有 2 种模式的 android wear 应用程序:连接(与手机配对)和断开连接。我看了这个帖子(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");
}
有以下几种情况: - 如果移动应用程序启动,穿戴应用程序将检测到节点并进入连接模式。 - 如果移动应用程序被杀死,它会在销毁之前向手表发送一条消息,并且手表会进入断开模式。 - 如果蓝牙连接丢失,穿戴应用程序将进入断开模式。
我在这样做的过程中有点迷茫。我如何知道正确的节点是否配对? (包含应用的手机)?
编辑:
这是我使用的功能代码:
@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();
}
【问题讨论】:
标签: wear-os