Выдается исключение Google Awareness Snapshot.getLocation SecurityException

Я знаю, что это похоже на дубликат (выдается исключение безопасности Google Awareness API) и, вероятно, это так, но, поскольку мое обаяние stackoverflow недостаточно велико, я не могу проголосовать за вопрос или добавить комментарий, и это определенно не ответ. Так что заранее извиняюсь за дублирование.

Как и в случае выше, я вижу, что около 10% моих вызовов API осведомленности (120 тыс. Успехов + 1,2 тыс. Ошибок) получают исключение SecurityException с кодом ответа -1. Шаг регистрации API, и они совпадают. На самом деле, если я заставлю их быть разными, я получу то же исключение, но с кодом ответа 6, а не с -1; но это происходит сбой происходит для каждого запроса не с перерывами. И когда я смотрю обзор Google Awareness API в консоли разработчика, я вижу примерно такое же количество сбоев, как и количество ответов Server Error (5XX).

Однако мой вопрос заключается в том, что если Snapshot API предлагает такой метод, как

public static PendingResult<LocationResult> getLocation(GoogleApiClient client)

где использование этого метода не может перехватить исключение SecurityException, созданное кодом, который он вызывает, поскольку исключение возникает в отдельном потоке собственного создания внутреннего кода. Почему код Awareness API просто не перехватывает это SecurityException и не обрабатывает его так, как будто LocationResult является ошибкой, а не приводит к сбою моего приложения?


person Scott Corley    schedule 11.09.2016    source источник
comment
Я вижу подобное поведение при использовании API осведомленности и открыл эту проблему: code.google.com/p/android/issues/ Вы нашли решение?   -  person Florian Barth    schedule 30.09.2016


Ответы (2)


из: https://code.google.com/p/android/issues/detail?id=223751

В наших проверках есть ошибка, из-за которой иногда возникает исключение SecurityException при сетевой ошибке аутентификации. Исправление появится в следующей версии сервисов Google Play.

На данный момент лучшим обходным решением будет настройка UncaughtExceptionHandler в потоке, который вы вызываете GoogleApiClient.connect(). Для большинства людей это будет в основном потоке, который вы можете получить с помощью Looper.myLooper().getThread().

person Florian Barth    schedule 21.10.2016
comment
см. также: stackoverflow.com/questions/39390557 / - person Florian Barth; 21.10.2016

Исключение SecurityException возникает при вызове GoogleApiClient.connect(). См. исключение безопасности Google Awareness API для временного решения.

person mochu    schedule 14.10.2016