2013-06-27 8 views
1

Я написал экспериментальный код, чтобы проверить, как работает поток соединения PlusClient. Я следил за документацией и смог вызвать всплывающее окно выбора учетной записи, а также открыть диалоговое окно авторизации и получить доступ к токенам.Как избежать мгновенного onConnected обратного вызова при использовании PlusClient?

Это было вчера.

Сегодня я полностью не могу подключить PlusClient правильно. Что происходит, так это то, что в PlusClient.connect() обратный вызов connect немедленно вызывается с нулевым пакетом. Вызов PlusClient.getAccountName() возвращает значение null. Я попробовал вызывать PlusClient.revokeAccessAndDisconnect(), а callback onAccessRevoked вызывается с connectionResult с INTERNAL_ERROR в качестве errorCode.

Это похоже на то, что службы Google Play полагают, что у него есть действующий токен, но забыл, кто вошел в систему. Есть ли способ сбросить службы Google Play, чтобы он больше не запоминал токены аутентификации для моего приложения? Я попытался очистить Google Play Services и Google Services Framework, но это не исправило мой isse.

EDIT:

На самом деле это происходит из-за моей собственной глупости. Я начал реорганизовывать свойство областей в свою собственную переменную, но не выполнил работу. Я сделал следующее в коде:

final String scopes = Scopes.PLUS_LOGIN + " " 
      + Scopes.PLUS_PROFILE + " " 
      + "https://www.googleapis.com/auth/drive.appdata"; 

    mPlusClient = new PlusClient.Builder(this, this, this) 
       .setVisibleActivities("http://schemas.google.com/AddActivity",                
        "http://schemas.google.com/BuyActivity") 
       .setScopes() 
       .build(); 

Проблема заключается в том, что существует перегрузка для setScopes(), но я имел в виду сказать setScopes (областей) вместо этого. Это вызвало проблему, которую я описывал выше.

ответ

0

См. Изменение для доказательства того, почему я никогда не должен кодировать во время сна. Я не мог добавить параметр к вызову метода setScopes в PlusClient.Builder. Не уверен, почему API позволит это. Это должно было вызвать прекрасное исключение, которое я мог бы использовать для отслеживания моей опечатки.

Смежные вопросы