Android WearableListenerService未检测到对等连接或断开连接

时间:2014-11-20 13:11:32

标签: java android wear-os android-wear-data-api

我创建了课程" CommunicationService"它扩展了WearableListenerService。我通过此操作修改了清单并添加了服务:

android:name="com.google.android.gms.wearable.BIND_LISTENER"

我覆盖了onPeerDisconnected和onPeerConnected方法,如下所示:

@Override
public void onPeerDisconnected(Node peer) {
    SharedPreferences.Editor editor = prefs.edit();
    editor.putBoolean(ON_PEER_CONNECT, false);
    editor.commit();
    super.onPeerDisconnected(peer);
}

@Override
public void onPeerConnected(Node peer) {
    SharedPreferences.Editor editor = prefs.edit();
    editor.putBoolean(ON_PEER_CONNECT, true);
    editor.commit();
    super.onPeerConnected(peer);
}

我在连接时存储true,在与我的共享偏移断开连接时存在false。

在其他课程中,我会像这样调用此服务的方法。

if (prefs.getBoolean(CommunicationService.ON_PEER_CONNECT, false))
                    CommunicationService.sendDataToWearable();
                else
                    Toast.makeText(context, "There is no connection to wearable. Please, try reconnecting!", Toast.LENGTH_SHORT).show();

所以问题是,当我运行我的应用程序并且我连接到手表时一切正常,当我手动禁用蓝牙并再次尝试一切正常工作时,所以Toast会显示警告连接错误。

但是,当我离开手表然后回到它(我失去连接,然后当我足够接近时我恢复它)它显示Toast警告连接错误,但在Android Wear应用程序中它说可穿戴设备连接到掌上电脑。

所以我猜我的服务出了问题,并没有以正确的方式更新我的共享偏好。

另外,我不知道我应该怎么做onCreate方法。我应该检查是否有任何与此相关的节点:

List<Node> connectedNodes =
Wearable.NodeApi.getConnectedNodes(mGoogleApiClient).await().getNodes();

然后只更新我的共享偏好?

0 个答案:

没有答案