2013-10-10 5 views
3

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

Intent pickAccountIntent = AccountPicker.newChooseAccountIntent(null, null, new String[]{"com.home.customapp"}, true, null, null, null, null); 
     startActivityForResult(pickAccountIntent, 1); 

У меня 2 вопроса:

1. Согласно API, если alwaysPromptForAccount (четвёртая параметр) установлен в положение истинной сборщика всегда должны быть видны.

Однако, если нет предыдущих счетов типа «com.home.customapp», ловильная активность не отображаются, даже если alwaysPromptForAccount установлен в истинные

Как я могу сделать сборщик быть всегда виден, даже если нет пользовательских учетных записей?

2. Как можно настроить дополнительные шаги учетной записи, чтобы добавить пользовательскую учетную запись, а не учетную запись google?

+0

Наблюдение за тем же поведением на Android 4.4.2 с пользовательским типом учетной записи (а не с Google). Он сразу же запускает новое намерение учетной записи, а не показывает сборщик, независимо от этого логического параметра. – TalkLittle

ответ

0

Чтобы добавить учетную запись, вы можете использовать:

mAccountMgr.addAccountExplicitly(mAccount, null, null); 
setAccountSync(mAccount, SOME_AUTHORITY, some_interval); 

Это то, что вы ищете?

+0

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

+0

, то это работает для меня: Intent intent = AccountManager.newChooseAccountIntent (null, null, new String [] {GOOGLE_ACCOUNT_TYPE}, true, null, null, null, null); startActivityForResult (намерение, ACCOUNT_CHOOSER_REQUEST_CODE); Он просто отображает диалог выбора собственного аккаунта, в котором последний вариант создает новый, конечно, вместо GOOGLE_ACCOUNT_TYPE вы можете добавить все, что захотите – Ciprian

2

Я только что понял, что флаг влияет только на случай, когда есть ровно одна учетная запись этого типа. Это не влияет на случай отсутствия нулевых учетных записей.

Если есть нулевые учетные записи, независимо от значения параметра /false, диалог выбора выбирается в обход, и система сразу же запускает намерение Создать учетную запись.

Если есть ровно одна учетная запись, а флаг true, он покажет варианты использования этой учетной записи или создания новой учетной записи. Если флаг равен false, он немедленно войдет в систему, используя учетную запись, не указывая опцию создания новой учетной записи.

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