Как найти учетную запись Gmail, связанную с Android Market?
Я знаю, как найти учетные записи (которые будут содержать идентификаторы электронной почты электронной почты gmail) и как фильтровать учетную запись gmail.
AccountManager am = AccountManager.get(context);
Account[] accounts = am.getAccounts();
ArrayList<String> googleAccounts = new ArrayList<String>();
for (Account ac : accounts) {
String acname = ac.name;
String actype = ac.type;
//add only google accounts
if(ac.type.equals("com.google")) {
googleAccounts.add(ac.name);
}
Log.d(TAG, "accountInfo: " + acname + ":" + actype);
}
return googleAccounts;
Что я хочу знать, как найти учетную запись gmail, связанную с Android Market? Если вы попытаетесь удалить учетную запись gmail с телефона Android, вы получите это сообщение
но если вы попытаетесь удалить учетную запись gmail, связанную с Android Market, вы получите следующее сообщение (если вы нажмете удалить учетную запись в предыдущем сообщении).
Спасибо за помощь.
Ответы
Ответ 1
Диалог
вызвано реализацией AbstractAccountAuthenticator # getAccountRemovalAllowed в аутентификаторе учетной записи Google.
Поскольку вызов реализаций AbstractAccountAuthenticator
напрямую предотвращается только с помощью системного разрешения android.permission.ACCOUNT_MANAGER
, вам будет сложно найти это самостоятельно.
Ответ 2
Из того, что я нашел, первая учетная запись google, добавленная в устройство, является основным адресом google, который связан с рынком Android. Кроме того, мы получаем учетные записи google в том порядке, в котором оно было добавлено в устройство. Таким образом, учетные записи [0] будут первым добавленным идентификатором электронной почты.
String marketAssociatedEmailId = "";
Account[] accounts = AccountManager.get(context).getAccountsByType("com.google");
if(accounts.length > 0) {
marketAssociatedEmailId = accounts[0].name;
}
Опять же, я не уверен в этом. Вы должны сами проверить его с помощью различных сценариев.
Ответ 3
"Ассоциация" будет управляться приложением Android Market/Google Play, и я не думаю, что у него есть какой-либо публичный API, который расскажет вам, какие учетные записи он использует. Кроме того, в последних версиях он может использовать несколько учетных записей, поэтому потенциально любая учетная запись Google на телефоне может использоваться с приложением Market/Play Store.
Почему именно вы пытаетесь это сделать? Уметь безопасно удалять учетные записи? Пользователь получит соответствующее сообщение об ошибке, чтобы они могли решить, удалить ли аккаунт или нет.