Google Drive Android API возвращает успех даже после удаления приложения

Я использую новый API Google Диска для Android. Это демонстрационный код, который я скопировал из Репозиторий Google android-samples.

GoogleSignInAccount signInAccount = GoogleSignIn.getLastSignedInAccount(this);
if (signInAccount != null && signInAccount.getGrantedScopes().containsAll(requiredScopes)) {
            initializeDriveClient(signInAccount);
}
else 
{ ... }

Проблема, с которой я столкнулся, заключается в том, что даже если я удалю приложение с Диска, getLastSignedInAccount() по-прежнему возвращает учетную запись, и операции (например, добавление файла) в учетных записях по-прежнему выполняются успешно. Я полагаю, что возврат объекта GoogleSignInAccount - это нормально, но он не должен допускать операций с ним. Я дважды проверил на Диске, файлы не добавляются, когда API возвращает успех (поскольку я отключил приложение). Что здесь не так?

И да, это сработало, когда я вручную синхронизировал учетную запись на моем устройстве. В этом случае, хотя getLastSignedInAccount() вернул объект, операции не удались.

PS: Я прошу прицелы SCOPE_FILE и SCOPE_APPFOLDER.

не могли бы вы показать код?

Leo supports Monica Cellio 25.05.2018 06:36

Пожалуйста, поясните, что вы имеете в виду под «даже если я удалю приложение с Диска». Я предполагаю, что вы имеете в виду, что отменяете доступ к приложению в пользовательском интерфейсе Google Диска? Также уточните, сохраняется ли такое поведение, если вы закрываете текущее действие и открываете его снова, и сохраняется ли оно после перезапуска приложения. Если у вас есть отдельные шаги репо, основанные на одном из образцов Диска, это также будет полезно.

PaulR 25.05.2018 16:44
8
2
185
1

Ответы 1

Это похоже на желаемое поведение.

GoogleSignIn.getLastSignedInAccount(this) узнает об этом только после синхронизации, но не до этого. Как видите, этот метод неблокирующий.

В качестве улучшения вызовы API для выполнения операций должны возвращать что-то вроде 403 UNAUTHORIZED.

Другие вопросы по теме