package fi.iki.murgo.irssinotifier; import java.io.IOException; import android.accounts.Account; import android.accounts.AccountManager; import android.accounts.AccountManagerFuture; import android.accounts.AuthenticatorException; import android.accounts.OperationCanceledException; import android.app.Activity; import android.content.Context; import android.os.Bundle; public class UserHelper { public static final String ACCOUNT_TYPE = "com.google"; public Account[] getAccounts(Context context) { AccountManager manager = AccountManager.get(context); return manager.getAccountsByType(ACCOUNT_TYPE); } public String getAuthToken(Activity activity, Account account) throws OperationCanceledException, AuthenticatorException, IOException { AccountManager manager = AccountManager.get(activity); String token = buildToken(manager, account, activity); manager.invalidateAuthToken(account.type, token); return buildToken(manager, account, activity); } private String buildToken(AccountManager manager, Account account, Activity activity) throws OperationCanceledException, AuthenticatorException, IOException { AccountManagerFuture<Bundle> future = manager.getAuthToken(account, "ah", null, activity, null, null); // ah is app engine Bundle token = future.getResult(); return token.get(AccountManager.KEY_AUTHTOKEN).toString(); } }