2012-03-16 131 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);