2015-10-29 4 views
0

Я создал конфигурационное действие для лица часов. Android wear показывает и начинает работу конфигурации нормально.Начать настройку конфигурации лицевого экрана из приложения

Возможно ли запустить конфигурационную деятельность из приложения-компаньона?

Я создал мероприятие, но не смог передать EXTRA_PEER_ID, который, по-видимому, передает активность Android Wear при запуске конфигурации.

ответ

0

я был в состоянии сделать это с помощью от How to detect if android device is paired with android wear watch EXTRA_PEER_ID это только nodeId подключенного износа устройства, которое может быть извлечено на код ниже.

Затем вы можете использовать Intent.putExtra(WatchFaceCompanion.EXTRA_PEER_ID, nodeId); и передать идентификатор с помощью намерения и начать конфигурационную деятельность.

Код:

private GoogleApiClient client; 
private static final long CONNECTION_TIME_OUT_MS = 1000; 

public void checkIfWearableConnected() { 

    retrieveDeviceNode(new Callback() { 
     @Override 
     public void success(String nodeId) { 
      Toast.makeText(LaunchActivity.this, "There was at least one wearable found", Toast.LENGTH_SHORT).show(); 
     } 

     @Override 
     public void failed(String message) { 
      Toast.makeText(LaunchActivity.this, "There are no wearables found", Toast.LENGTH_SHORT).show(); 
     } 
    }); 

} 

private GoogleApiClient getGoogleApiClient(Context context) { 
    if (client == null) 
     client = new GoogleApiClient.Builder(context) 
       .addApi(Wearable.API) 
       .build(); 
    return client; 
} 

private interface Callback { 
    void success(final String nodeId); 
    void failed(final String message); 
} 

private void retrieveDeviceNode(final Callback callback) { 
    final GoogleApiClient client = getGoogleApiClient(this); 
    new Thread(new Runnable() { 

     @Override 
     public void run() { 
      client.blockingConnect(CONNECTION_TIME_OUT_MS, TimeUnit.MILLISECONDS); 
      NodeApi.GetConnectedNodesResult result = 
        Wearable.NodeApi.getConnectedNodes(client).await(); 
      List<Node> nodes = result.getNodes(); 
      if (nodes.size() > 0) { 
       String nodeId = nodes.get(0).getId(); 
       callback.success(nodeId); 
      } else { 
       callback.failed("no wearables found"); 
      } 
      client.disconnect(); 
     } 
    }).start(); 
} 
Смежные вопросы