кода, я использую:Есть ли какие-либо улучшения надежности Wearable.MessageApi.sendMessage? Это примерно так же последовательно, как кошка
client.blockingConnect();
try {
Wearable.MessageApi.sendMessage(client,
nodeId, path, message.getBytes("UTF-16"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
client.disconnect();
переменного путь, и сообщения являются строки, которые содержат только то, что они названы в честь, и клиент, и NodeId устанавливается с этим кодом (который с последней версией Android Wear необходимо изменить слишком вмещать несколько устройств, но не актуальный вопрос я работаю):
client = new GoogleApiClient.Builder(context)
.addApi(Wearable.API)
.build();
while (nodeId.length() < 1) {
client.blockingConnect();
Wearable.NodeApi.getConnectedNodes(client).setResultCallback(new ResultCallback<NodeApi.GetConnectedNodesResult>() {
@Override
public void onResult(NodeApi.GetConnectedNodesResult nodes) {
for (Node node : nodes.getNodes()) {
nodeId = node.getId();
//nodeName = node.getDisplayName();
haveId = true;
status = ConnectionStatus.connected;
}
}
});
client.disconnect();
проблема у меня иногда это работает, иногда быстро , и в других случаях после долгой задержки, а иногда и вовсе. Приливы, фаза луны, влажность, бабочки хлопают по другую сторону света, не знаю, какие изменения. Android wear сообщает, что устройство всегда подключено. Иногда сообщения имеют одинаковые значения, но их все равно нужно обрабатывать отдельно, потому что, когда они происходят, важно, чтобы часы или мобильный ответ отвечали.
Есть ли способ улучшить надежность?
Я пробовал:
sendMessage(String.valueOf(System.currentTimeMillis()), "wake up!");
Но не проходят иногда либо.
Просто добавьте: я просто прочитал, что sendMessage не может быть запущен в потоке ui, однако я вызываю его из отдельного потока, поэтому я думаю, что это можно исключить, поэтому никто не тратит время на Это. – netsplit