GoogleApiClient onConnected не вызывается на часах

Я читал эту тему, но все еще сталкивался с подобной проблемой:

GoogleApiClient onConnected никогда не вызывался на носимых устройствах

Я пытался точно следовать тому, как это работает: https://developer.android.com/training/wearables/data-layer/events.html

Вот мои коды:

public class Main extends Activity implements DataApi.DataListener, GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
private static final String PATH = "/phonewatch";
private GoogleApiClient client;

@Override
protected void onCreate(Bundle savedInstanceState) {
    Log.d("phone watch", "On Create!");
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    client = new GoogleApiClient.Builder(this).addApi(Wearable.API).build();
    ...
}

@Override
protected void onStart() {
    Log.d("phone watch", "On Start!");

    super.onStart();
    client.connect();
}

@Override
protected void onStop() {
    Log.d("phone watch", "On Stop!");

    if (client != null && client.isConnected()) {
        Wearable.DataApi.removeListener(client, this);
        client.disconnect();
    }

    super.onStop();
}

@Override
public void onConnected(Bundle bundle) {
    Log.d("phone watch", "On connected! Add listener.");

    Wearable.DataApi.addListener(client, this);
}

@Override
public void onConnectionSuspended(int i) {
    Log.d("phone watch", "connection suspended.");
}

@Override
public void onConnectionFailed(ConnectionResult connectionResult) {
    Log.d("phone watch", "connection failed.");
}

@Override
public void onDataChanged(final DataEventBuffer dataEventBuffer) {
    Log.d("phone watch", "Data changed!");
...
}

Я получил только это:

07-23 20:07:41.730 24874-24874/virtualgs.phonewatch D/phone watch﹕ При создании! 07-23 20:07:41.772 24874-24874/virtualgs.phonewatch D/телефонные часы﹕ На старте!

О подключении и других лог-сообщениях не вызывалось. Я ничего не пропустил?


person Lim Thye Chean    schedule 23.07.2015    source источник


Ответы (1)


Хотя ваша активность реализует GoogleApiClient.ConnectionCallbacks и GoogleApiClient.OnConnectionFailedListener, вы никогда не регистрировали свою активность в качестве прослушивателя для получения этих обратных вызовов. При создании клиента API вам необходимо вызвать следующие два: addConnectionCallbacks(this) и addOnConnectionFailedListener(this):

client = new GoogleApiClient.Builder(this)
    .addApi(Wearable.API)
    .addConnectionCallbacks(this)
    .addOnConnectionFailedListener(this)
    .build();
person Ali Naddaf    schedule 23.07.2015
comment
Спасибо! Не могу поверить, что совершил эту ошибку. Спасибо за вашу помощь! - person Lim Thye Chean; 23.07.2015