Моя ситуация:
- Во-первых, я реализовал аутентификацию Google Plus в своем приложении. Я следовал кратким инструкциям и добавил пример кода быстрого запуска в мое приложение.
- Затем я хотел получить последнее известное местоположение пользователя. Fused Location Provider оказался самым современным способом его получения, поэтому я посмотрел на LocationUpdates.zip и демонстрационный код kpbird .
Моя забота:
Пространства имен
com.google.android.gms.common.api.GoogleApiClient
иcom.google.android.gms.common.GooglePlayServicesClient
вносят некоторое перекрытие в силу того факта, что если вы хотите использоватьGoogleApiClient
иLocationClient
, то ваш класс (то естьActivity
) должен реализовать следующее:GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, GooglePlayServicesClient.ConnectionCallbacks, GooglePlayServicesClient.OnConnectionFailedListener
И код из обоих пространств имен переопределит следующее:
@Override
public void onConnected(Bundle connectionHint) {
/* pseudo-code
if (GoogleApiClient) {
// Implementation
} else {
// Must be LocationClient
}
*/
}
@Override
public void onConnectionFailed(ConnectionResult result) {
/* pseudo-code
if (GoogleApiClient) {
// Implementation
} else {
// Must be LocationClient
}
*/
}
Таким образом, вам придется писать код, чтобы определить, были ли GoogleApiClient
или LocationClient
инициированы обработчики событий onConnected
и onConnectionFailed
.
Мой вопрос:
- Я бы хотел сохранить разделение проблем. Есть ли лучший способ сделать это?