2012-03-16 119 views
4

我想使用在设备中注册的gmail-id自动填写emailId EditText。 例如,如果我的手机注册了Gmail邮箱编号[email protected]那么它应该会自动完成,因为我开始输入“s”。有任何想法吗???谢谢...如何使用设备注册的电子邮件ID自动填充电子邮件编辑文本

+0

http://stackoverflow.com/questions/2112965/how-to-get-the -android-devices-primary-e-mail-address – ingsaurabh 2012-03-16 07:20:13

+0

在你的应用程序中它必须自动完成你的注册邮件? – 2012-03-16 07:20:55

+0

只是一个想法。一旦你获得了ID,而不是自动填充,为什么不把它设置为提示?你可以使用setHint() – Shubhayu 2012-03-16 07:34:56

回答

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

@达拉斯基本上编辑别人的答案的内容是不合适的。您可以将您的内容作为新的单独答案发布。将这个答案回滚,不要重复。 – 2014-05-27 15:12:17

+0

@AndrewMedico你应该回滚到主要编辑之前的版本,然后,因为那个人有拼写/语法/语法修复。 – Dallas 2014-05-27 19:30:31

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);