Android 如何使用设备注册时使用的电子邮件id自动填充电子邮件编辑文本

Android 如何使用设备注册时使用的电子邮件id自动填充电子邮件编辑文本,android,email,autocomplete,android-edittext,Android,Email,Autocomplete,Android Edittext,我想用设备注册的gmail id自动完成emailId EditText。 e、 g如果我的手机是用gmail id注册的sd@gmail.com当我开始键入“s”时,它应该自动完成。有什么想法吗???谢谢…您必须通过Android AccountManager课程: AccountManager manager = (AccountManager) getSystemService(ACCOUNT_SERVICE); Account[] list = manager.getAccounts(

我想用设备注册的gmail id自动完成emailId EditText。
e、 g如果我的手机是用gmail id注册的sd@gmail.com当我开始键入“s”时,它应该自动完成。有什么想法吗???谢谢…

您必须通过Android AccountManager课程:

AccountManager manager = (AccountManager) getSystemService(ACCOUNT_SERVICE); 
Account[] list = manager.getAccounts();
还需要向AndroidManifest文件添加所需的权限:

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


从那里您可以自动填写信息。

首先在AndroidManifest.xml文件中设置此权限

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

在你的应用程序中,它必须自动完成你的注册电子邮件??这只是一个想法。一旦你得到了id,你为什么不把它设置为一个提示,而不是自动填充呢?你可以使用setHint()是的@shubhayu这是个好方法。但您不能选择提示。所以当你点击提示时,它就会消失。所以我用这些结果制作了一个ArrayAdapter,并使用AutoCompleteTextView而不是EditText。现在一切正常。请看:@Dallas大量编辑其他人答案的内容是不合适的。您可以将内容作为新的单独答案发布。回滚此答案,不要重复。@AndrewMedico您可能应该回滚到主要编辑之前的版本,因为该版本有拼写/语法/语法修复。
//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);