2012-03-16 3 views
4

Я хочу автозаполнять электронный адрес EditText с идентификатором gmail, зарегистрированным на устройстве. Например, если мой телефон зарегистрирован с идентификатором gmail [email protected], тогда он должен быть завершен автоматически, так как я начинаю печатать «s». Есть идеи??? Спасибо ...Как автоматически заполнить электронный адрес электронной почты с идентификатором электронной почты, на котором зарегистрировано устройство.

+0

http://stackoverflow.com/questions/2112965/how-to-get-the -android-devices-primary-e-mail-address – ingsaurabh

+0

в вашем приложении он должен автоматически заполнить ваше зарегистрированное электронное письмо? –

+0

Просто идея. как только вы получите идентификатор, вместо автоматического заполнения, почему бы вам не установить его как подсказку? U можно использовать setHint() – Shubhayu

ответ

5

Вы должны пройти через класс Android AccountManager:

AccountManager manager = (AccountManager) getSystemService(ACCOUNT_SERVICE); 
Account[] list = manager.getAccounts(); 

, а также нужно добавить необходимые права доступа к файлу AndroidManifest:

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

Оттуда вы можете автозаполнения информацию.

+1

@ Даллас Существенное изменение содержания чужого ответа не подходит. Вы можете опубликовать свой контент как новый отдельный ответ. Повторяя этот ответ, не повторяйте его. –

+0

@AndrewMedico вы должны, вероятно, вернуться к версии до основного редактирования, тогда как у этого есть исправления орфографии/грамматики/синтаксиса. – Dallas

2

Во-первых установить это разрешение в вашем AndroidManifest.xml файле

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

Java-код:

//declaration 

String possibleEmail=""; 

//onCreate 

EditText emailEdt=new EditText(this); 

Account[] accounts = AccountManager.get(this).getAccounts(); 
for (Account account : accounts) 
{ 

    // TODO: Check possibleEmail against an email regex or treat 

    // account.name as an email address only for certain account.type values. 
    possibleEmail = account.name; 

} 
emailEdt.setText(possibleEmail); 
Смежные вопросы