Google Drive Android API возвращает успех даже после удаления приложения - PullRequest
0 голосов
/ 13 мая 2018

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

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

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

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

PS: Я запрашиваю SCOPE_FILE и SCOPE_APPFOLDER области.

1 Ответ

0 голосов
/ 25 мая 2018

Это выглядит как желаемое поведение.

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

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

...