Часы Pebble имеют намерение, которое глобально изменяется, когда Pebble подключен/отключен. Это позволяет телефонным приложениям узнать, подключены ли часы или нет. Я искал, но я не способен найти информацию об аналогичной функции для Android Wear. Как узнать, подключен ли носитель к телефону? Можно ли получить такое событие, как с Pebble? БлагодаряОбнаруживать при подключении и подключении к телефону с телефона
ответ
Вы можете легко сделать это, расширив метод WearableListenerService и переопределив метод onConnectedNodes().
носимого Side
public class DisconnectListenerService extends WearableListenerService implements GoogleApiClient.ConnectionCallbacks {
/* the capability that the phone app would provide */
private static final String CONNECTION_STATUS_CAPABILITY_NAME = "is_connection_lost";
private GoogleApiClient mGoogleApiClient;
@Override
public void onCreate() {
super.onCreate();
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addApi(Wearable.API)
.addConnectionCallbacks(this)
.build();
}
@Override
public void onConnectedNodes(List<Node> connectedNodes) {
if (mGoogleApiClient.isConnected()) {
updateStatus();
} else if (!mGoogleApiClient.isConnecting()) {
mGoogleApiClient.connect();
}
}
private void updateStatus() {
Wearable.CapabilityApi.getCapability(
mGoogleApiClient, CONNECTION_STATUS_CAPABILITY_NAME,
CapabilityApi.FILTER_REACHABLE).setResultCallback(
new ResultCallback<CapabilityApi.GetCapabilityResult>() {
@Override
public void onResult(CapabilityApi.GetCapabilityResult result) {
if (result.getStatus().isSuccess()) {
updateConnectionCapability(result.getCapability());
} else {
Log.e(TAG, "Failed to get capabilities, " + "status: " + result.getStatus().getStatusMessage());
}
}
});
}
private void updateConnectionCapability(CapabilityInfo capabilityInfo) {
Set<Node> connectedNodes = capabilityInfo.getNodes();
if (connectedNodes.isEmpty()) {
// The connection is lost !
} else {
for (Node node : connectedNodes) {
if (node.isNearby()) {
// The connection is OK !
}
}
}
}
@Override
public void onConnected(Bundle bundle) {
updateStatus();
}
@Override
public void onConnectionSuspended(int cause) {
}
@Override
public void onDestroy() {
if (mGoogleApiClient.isConnected() || mGoogleApiClient.isConnecting()) {
mGoogleApiClient.disconnect();
}
super.onDestroy();
}
}
Телефон Side
создать файл XML в значениях/директории с именем wear.xml
<resources>
<string-array name="android_wear_capabilities">
<item>is_connection_lost</item>
</string-array>
</resources>
Для более, проверка на мое решение в это Stack Overflow Question
Вы пробовали NodeApi, вы можете использовать getConnectedNodes
Возвращает список узлов, к которому данное устройство в данный момент подключен.
или addListener(GoogleApiClient client, NodeApi.NodeListener listener)
, которые
Регистрирует слушателя получить все узловые события.
Затем вы можете использовать обратные вызовы из NodeApi.NodeListener
onPeerConnected(Node peer) and onPeerDisconnected(Node peer)
Но может быть более одного подключенного узла ... – powder366
Как Акмал сказал, что вы можете получить устройства, которые подключены к телефону, но знать, является ли носимых в настоящее время связано с портативной
List<Node> connectedNodes =
Wearable.NodeApi.getConnectedNodes(mGoogleApiClient).await().getNodes();
Список содержит следующие данные:
Node{Moto 360 6BBF, id=3b6d19bf, hops=1, isNearby=true}
- 1. Приложение автозапуска при подключении телефона к компьютеру
- 2. Как отображается приложение Android Auto Media при подключении к телефону?
- 3. Как показать базу данных sqlite при подключении к мобильному телефону?
- 4. Какое ключевое действие срабатывает при подключении задней кнопки телефона к коммуникационному телефону?
- 5. IO Исключение при подключении к URL-адресу при подключении()
- 6. Как автоматически запускать программу при подключении телефона к компьютеру?
- 7. Открыть браузер телефона при подключении к серверу узлов
- 8. Исключение при подключении к Neo4j
- 9. Поведение при подключении к ноутбуку
- 10. WSACONNREFUSED при подключении к серверу
- 11. Ошибка: при подключении к WebService
- 12. Исключение при подключении к устройству
- 13. KeyError при подключении к API
- 14. NPE при подключении к брокеру
- 15. android.app.serviceconnectionleaked при подключении к mysql
- 16. ошибка при подключении к MySQL
- 17. Ошибка при подключении к компоненту
- 18. ошибка при подключении к hbase
- 19. Ошибка при подключении к MySQL
- 20. ошибка при подключении к db
- 21. Предупреждение о подключении SSL при подключении к базе данных MySQL
- 22. Ошибка при подключении к wsdl?
- 23. Сбой при подключении к Bluetooth
- 24. Исключение при подключении к API
- 25. SocketException при подключении к серверу
- 26. Ошибка при подключении к серверу
- 27. Обнаружение при подключении к Интернету
- 28. Проблема при подключении к серверу
- 29. Ошибка при подключении к mysql
- 30. Ошибка при подключении к DB2
Это не ответ на заданный вопрос ... должно быть отмечено –