#android #google-api #google-play-services #google-api-java-client
#Android #google-api #google-play-сервисы #google-api-java-client
Вопрос:
Я пытаюсь инициализировать API истории из сервисов Google Play. Теперь, с тех пор как мы обновили наше приложение, .useDefaultAccount()
метод не работает должным образом, и результат подключения завершается ошибкой. Это приведет к появлению запроса на вход в наше приложение, где пользователю необходимо выбрать свою учетную запись. Мы хотели бы предотвратить это. Есть ли способ сделать это?
Как мы создаем объект клиента и подключаем его (внутри AsyncTask
):
GoogleApiClient apiClient = new GoogleApiClient.Builder(context)
.addApi(Fitness.HISTORY_API)
.useDefaultAccount()
.build();
ConnectionResult connectionResult = apiClient.blockingConnect();
if (!connectionResult.isSuccess()) {
if (connectionResult.hasResolution() amp;amp; context instanceof Activity) {
try {
connectionResult.startResolutionForResult((Activity) context, 1);
} catch (IntentSender.SendIntentException e) {
// Utter Failure
}
}
}
return null;
Ответ №1:
Клиент API Google должен быть построен на onCreate
методе Activity, а не внутри AsyncTask. Попробуйте переместить блок кода в соответствующий класс. Это может быть причиной того, почему вы получаете SendIntentException
.
Ответ №2:
Убедитесь, что вы правильно обрабатываете результат выбора учетной записи в onActivityResult(). Если вы не подключились к GoogleApiClient там, диалоговое окно будет продолжать отображаться.