Android - 如何获取gmail应用程序中可用的电子邮件列表,当我想在edittext中输入电子邮件ID?
问题描述:
如何获取Gmail应用程序中可用的电子邮件列表,当我想在edittext中输入电子邮件ID时?Android - 如何获取gmail应用程序中可用的电子邮件列表,当我想在edittext中输入电子邮件ID?
答
不能通过EDITTEXT做到这一点,你应该在你的清单中的onCreate
AutoCompleteTextView autoComplete = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView);
String selectedEmail;
List<String> emails = new ArrayList<>();
Pattern emailPattern = Patterns.EMAIL_ADDRESS; // API level 8+
//get runtime permission
Account[] accounts = AccountManager.get(YourActivityName.this).getAccounts();
int i=0;
for (Account account : accounts) {
if (emailPattern.matcher(account.name).matches()) {
String possibleEmail = account.name+"\n";
emails.add(possibleEmail);
}
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>
(this,android.R.layout.simple_list_item_1,emails);
autoComplete.setAdapter(adapter);
//default selected email
selectedEmail = emails.get(0);
autoComplete.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
// You can get the user selected email here
String selectedEmail = emails.get(position)
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
使用AutoCompleteTextView
<AutoCompleteTextView
android:id="@+id/autoCompleteTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
在你的活动文件,你需要添加权限
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
如果您正在开发API> = 23(Marshmallow),那么您还需要获得运行时权限。按照这个运行时的权限
https://developer.android.com/training/permissions/requesting.html
https://stackoverflow.com/questions/2197741/how-can-i-send-emails-from-my-android-application –