/** * Verify authenticator registered for account type matches the package name * of this application * * @param manager * @return true is authenticator registered, false otherwise */ public static boolean hasAuthenticator(final AccountManager manager) { if (!AUTHENTICATOR_CHECKED) { final AuthenticatorDescription[] types = manager .getAuthenticatorTypes(); if (types != null && types.length > 0) { for (AuthenticatorDescription descriptor : types) { if (descriptor != null && ACCOUNT_TYPE.equals(descriptor.type)) { HAS_AUTHENTICATOR = BuildConfig.APPLICATION_ID.equals(descriptor.packageName); break; } } } AUTHENTICATOR_CHECKED = true; } return HAS_AUTHENTICATOR; }
@Test public void testAddAuthenticator() { shadowOf(am).addAuthenticator("type"); AuthenticatorDescription[] result = am.getAuthenticatorTypes(); assertThat(result.length).isEqualTo(1); assertThat(result[0].type).isEqualTo("type"); }
private Drawable getIconForAccount(Account account, AccountManager manager) { AuthenticatorDescription[] descriptions = manager.getAuthenticatorTypes(); for (AuthenticatorDescription description: descriptions) { if (description.type.equals(account.type)) { PackageManager pm = getContext().getPackageManager(); return pm.getDrawable(description.packageName, description.iconId, null); } } return null; }
/** * Finds "All Contacts"-Name for the specified account type. */ private static String resolveAllContactsName(Context context, String accountType) { final AccountManager am = AccountManager.get(context); for (AuthenticatorDescription auth : am.getAuthenticatorTypes()) { if (accountType.equals(auth.type)) { return resolveAllContactsNameFromMetaData(context, auth.packageName); } } return null; }
public void run() { Log.v(TAG, "checking accounts"); AccountManager am = AccountManager.get(AccountEnableService.this); AuthenticatorDescription[] authenticators = am.getAuthenticatorTypes(); String package_name = getString(R.string.package_name); // check all authenticators for the original package name for (AuthenticatorDescription authenticator : authenticators) { Log.v(TAG, authenticator.type + " " + authenticator.packageName); if (package_name.equals(authenticator.packageName)) { // enable the workaround now that the original authenticator has taken over Log.v(TAG, "enable workaround authenticator"); PackageManager pm = getPackageManager(); pm.setComponentEnabledSetting(new ComponentName(AccountEnableService.this, AuthenticationService.class), PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); // stop this service, we're done mTimer.cancel(); AccountEnableService.this.stopSelf(); } } } }
AuthenticatorDescription[] descriptions = accountManager.getAuthenticatorTypes(); AuthenticatorDescription neededDescription = null; for (AuthenticatorDescription description : descriptions) {
final AuthenticatorDescription[] auths = am.getAuthenticatorTypes();