Android - 如何获取gmail应用程序中可用的电子邮件列表,当我想在edittext中输入电子邮件ID?

问题描述:

如何获取Gmail应用程序中可用的电子邮件列表,当我想在edittext中输入电子邮件ID时?Android - 如何获取gmail应用程序中可用的电子邮件列表,当我想在edittext中输入电子邮件ID?

Screenshot

+0

https://*.com/questions/2197741/how-can-i-send-emails-from-my-android-application –

不能通过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

+0

做你试过这种@ykb? –

+0

没有@Shriyansh Gautam。还没。 – ykb

+0

如果显示出一些错误,你可以告诉我 –