Как я могу получить имя (или полное имя) пользователя телефона?

Есть ли способ получить имя пользователя или полное имя? Я имею в виду пользователя телефона

Требуются ли специальные разрешения для манифеста?

Ответ 1

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

  • Вы можете попытаться получить доступ к своей информации, хранящейся в учетной записи Google, требуя разрешения GET_ACCOUNTS
  • Вы могли бы, как предложил Vinayak.B, попытаться собрать информацию из контактов, требуя разрешения READ_CONTACTS и READ_PHONE_STATE, хотя я думаю, что это вариант с ошибкой или пропуском.
  • Существует также разрешение READ_PROFILE, которое, по моему мнению, является интересным способом, но у меня нет никакого опыта с этим, поэтому я не могу сказать, действительно ли это плодотворное предприятие.

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

Я действительно надеюсь, что это ответит на ваш вопрос, но если это не так, вам действительно нужно предоставить дополнительную информацию.

Ответ 2

Да, начиная с ICS вы можете прочитать профиль владельца устройства (для которого требуется разрешение READ_PROFILE):

http://developer.android.com/reference/android/provider/ContactsContract.Profile.html

В частности, столбец DISPLAY_NAME должен иметь свое имя. Или вы можете найти элемент данных StructuredName, чтобы получить GIVEN_NAME:

http://developer.android.com/reference/android/provider/ContactsContract.CommonDataKinds.StructuredName.html