В настоящее время я использую следующий код, чтобы получить имя текущего пользователя:получения имени пользователя любого пользователя
String username;
{
Cursor c = ctx.getContentResolver().query(Profile.CONTENT_URI,
new String[]{Profile.DISPLAY_NAME}, null, null, null);
if (c.getCount() > 0)
{
c.moveToFirst();
username = c.getString(0);
}
На моем тестовом устройстве (Samsung Galaxy Tab Pro), с правильными разрешениями, это работает хорошо для пользователя «владелец», а также для других пользователей без ограничений. Однако для ограниченных профилей пользователей вещи разваливаются:
- Код всегда возвращает нулевые строки курсора. Я надеялся, что включение доступа к приложению «Контакты» позволит ему работать, но это не имеет никакого эффекта.
- Во всяком случае, в отличие от профилей с ограниченным доступом, профиль ограниченной учетной записи пользователя, похоже, не связан с именем, отображаемым на экране блокировки, поэтому даже если бы я мог заставить этот код работать, я не уверен насколько это было бы полезно.
Пожалуйста, простите двухсекционного вопрос о, но:
- Это особенность планшета Samsung, или это поведение согласуется на разных устройствах?
- Есть ли способ прочитать профайл ограниченного пользователя?
- Есть ли лучший способ получить имя текущего пользователя?
Любое понимание оценено.
Это поможет вам http://stackoverflow.com/questions/2727029/how-can-i-get -the-google-username-on-android –
Нет, я не ищу адрес электронной почты. –
У вас есть разрешение на чтение данных профиля? –