Получение имени пользователя Android в телефоне

Я пишу приложение, которое требует получить имя пользователя android username@gmail.com с телефона. Я смотрю класс AccountManager. Это то, что у меня есть в моем коде.

AccountManager accountManager = AccountManager.get(this); Account[] accounts = accountManager.getAccountsByType("com.google"); String email=""; email=accountManager.getUserData(accounts[0], accountManager.KEY_USERDATA); 

Тем не менее, я получаю caller uid 10085, который отличается от исключения идентификатора аутентификатора. Кто-нибудь знает, как это сделать?

PS. Мне не нужен пароль или токен аутентификации, мне просто нужно имя пользователя.

У вас есть GET_ACCOUNTS разрешений GET_ACCOUNTS в файле манифеста? См. Документы в методе getAccountsByType ():

Этот метод требует, чтобы вызывающий абонент сохранял разрешение GET_ACCOUNTS.

Убедитесь, что ваш манифест приложения имеет следующую строку:

<uses-permission android:name="android.permission.GET_ACCOUNTS" />

Имя пользователя доступно для вас; Просто используйте:

String email = accounts[0].name;