package edu.mit.media.funf.probe.builtin; import java.util.ArrayList; import java.util.Arrays; import android.accounts.Account; import android.accounts.AccountManager; import android.os.Bundle; import edu.mit.media.funf.HashUtil; import edu.mit.media.funf.probe.SynchronousProbe; import edu.mit.media.funf.probe.builtin.ProbeKeys.AccountsKeys; public class AccountsProbe extends SynchronousProbe implements AccountsKeys { @Override protected Bundle getData() { AccountManager am = (AccountManager)this.getApplicationContext().getSystemService(ACCOUNT_SERVICE); ArrayList<Bundle> accountBundles = new ArrayList<Bundle>(); for (Account account : am.getAccounts()) { Bundle accountBundle = new Bundle(); accountBundle.putString(NAME, HashUtil.hashString(this, account.name)); accountBundle.putString(TYPE, account.type); accountBundles.add(accountBundle); } Bundle data = new Bundle(); data.putParcelableArrayList(ACCOUNTS, accountBundles); return data; } @Override public String[] getRequiredPermissions() { return new String[] { android.Manifest.permission.GET_ACCOUNTS }; } }