Я новичок в android и пытаюсь получить список учетных записей, которые пользователь android зарегистрировал на своем устройстве. Я использовал менеджер аккаунтов Android, чтобы сделать это следующим образом:
public static int count;
count=0;
JSONArray jsonArr = new JSONArray();
JSONObject emailObj = new JSONObject();
Account[] accounts = AccountManager.get(mContext).getAccounts();
//Account[] accounts = AccountManager.get(mContext).getAccountsByType(null);
for (Account account : accounts) {
//possibleEmail += " "+account.name+" : "+account.type+" \n";
JSONObject elem = new JSONObject();
elem.put("name", account.name);
elem.put("type", account.type);
jsonArr.put(elem);
//possibleEmail += " "+account.name+" \n";
count++;
emailObj.put("list",jsonArr);
}
Приведенный выше код работает, например, как требуется для API уровня 23, например. Я получаю список учетных записей следующим образом:
[{"name":"agmailaccount@gmail.com","type":"com.google"},{"name":"agmailaccount2@gmail.com","type":"com.google"},{"name":"agmailaccount3@gmail.com","type":"com.google"},{"name":"handler","type":"com.twitter.android.auth.login"},{"name":"Facebook","type":"com.facebook.auth.login"},{"name":"LinkedIn","type":"com.linkedin.android"}]
Обратите внимание, что я могу определить, вошел ли пользователь в сторонние приложения. У меня действительно установлены linkedin, fb и twitter, и я захожу на эти платформы со своего устройства. Мне просто нужно захватить это (как показано в списке выше), а не реальные имена учетных записей.
Дело в том, что когда я использую тот же код для Android API уровня 29, он не возвращает сторонние учетные записикак com.twitter.android.auth.login
, com.facebook.auth.login
и "com.linkedin.android
. Тем не менее, я могу видеть учетные записи Gmail, вошедшие в систему на устройстве. Как я могу получить эту информацию в последних версиях Android?
Я также должен сказать, что я использую новейший API 29 из эмулятора Android и не знаю, является ли это причиной. Я установил linkedin, twitter и fb в эмуляторе и вошел в систему.
Мне просто нужно получить тот же результат, что показан выше, но для новых версий Android.