2016-08-10 2 views
1

기본적으로 사용자가 원하는 전자 메일 ID를 선택하는 옵션을 사용자에게 제공하려고합니다. 나는 사용자의 연락처 권한을 원하지 않습니다. 계정 권한은 사용자에게 문제가되지 않지만 나는 answer at stackoverflow을 시도했지만 그것은 나를 위해 일하지 않습니다. 그것을 얻기위한 다른 방법이 있습니까?Android의 모든 등록 된 전자 메일 계정 받기

가 나타나기이 권한을 추가합니다 :

나는 시도 무엇

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

을 그리고 구글은이 같은 계정 요청 : 구글은이 같은 계정

Account[] accounts = AccountManager.get(this).getAccountsByType("com.google"); 
for (Account account : accounts) { 
    Log.d(TAG, "Found: " + account.name); 
} 
+0

이 링크를 방문한 사람 : http://androidexample.com/Get_Registered_Email_Accounts_-_Android_Example/index.php?view=article_discription&aid=110? – LychmanIT

+0

예. 그것도 작동하지 않습니다. – impossible

답변

1

이 방법으로 시도 할 수 있습니다. 기본적으로 장치에 로그인 한 등록 된 모든 전자 메일을 팝업합니다.

Button btnEmail = (Button) findViewById(R.id.btn_email); 
btnEmail.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       try { 
        Intent intent = AccountPicker.newChooseAccountIntent(null, null, 
          new String[]{GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE}, false, null, null, null, null); 
        startActivityForResult(intent, REQUEST_CODE_EMAIL); 
       } catch (ActivityNotFoundException e) { 
        // TODO: 
        Toast.makeText(Login.this, "Error: " + e, Toast.LENGTH_SHORT).show(); 
       } 
      } 
     }); 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (requestCode == REQUEST_CODE_EMAIL && resultCode == RESULT_OK) { 
      userEmail = data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME); 
      btnEmail.setText(userEmail); 
      email_OK = true; 
     } 
    } 

작동하지 않는 경우 알려주십시오.

+0

감사합니다. 그것은 일했다! 내 생각에, 안드로이드 워드 프로세서는이 정보로 업데이트되어야합니다. – impossible

0

요청 :

Pattern emailPattern = Patterns.EMAIL_ADDRESS; 
Account[] accounts = AccountManager.get(context).getAccounts(); 
for (Account account : accounts) { 
    if (emailPattern.matcher(account.name).matches()) { 
     String emailAccount = account.name; 
    } 
} 
+0

작동하지 않습니다. – impossible

0

매니페스트에 사용 권한 행을 추가하는 것 외에도 앱을 설치할 때 해당 권한을 부여해야합니다. 새 장치가있는 경우 꺼져있을 수 있습니다. 설정에서 앱의 권한을 확인하십시오. 이 문제가 해결되었습니다.

관련 문제