When using AccountManager::getAuthTokenByFeatures, an Access Request screen is shown for the user to allow or deny access to the account. After a user allows access, subsequent calls (with the same arguments) return the auth token without prompting the user.
How do you clear the state to make sure the Access Request prompt appears? (This would useful at the very least for development, testing, and demo purposes.)
The only solution I've found is to manually clear out the data stored in the system's accounts.db. Run the following from the command line to clear out all account grants on the system.
For the emulator:
adb -e shell 'sqlite3 /data/system/accounts.db "delete from grants;"'
For a device (must be rooted and have the sqlite3 binary installed):
adb -d shell 'echo sqlite3 /data/system/accounts.db \"delete from grants\;\" | su'