如何获得Android用户的电子邮件地址?

nik*_*3ro 33 java android

我有,android.permission.READ_OWNER_DATA但我找不到任何可靠的代码,可以解释如何阅读设备所有者的电子邮件地址.我怎样才能做到这一点?

Jim*_*ler 92

你为什么要那样做?

import android.accounts.Account;
import android.accounts.AccountManager;
import android.content.Context;

/**
 * This class uses the AccountManager to get the primary email address of the
 * current user.
 */
public class UserEmailFetcher {

  static String getEmail(Context context) {
    AccountManager accountManager = AccountManager.get(context); 
    Account account = getAccount(accountManager);

    if (account == null) {
      return null;
    } else {
      return account.name;
    }
  }

  private static Account getAccount(AccountManager accountManager) {
    Account[] accounts = accountManager.getAccountsByType("com.google");
    Account account;
    if (accounts.length > 0) {
      account = accounts[0];      
    } else {
      account = null;
    }
    return account;
  }
}
Run Code Online (Sandbox Code Playgroud)

在您的AnroidManifest.xml中

<uses-permission android:name="android.permission.GET_ACCOUNTS" />
Run Code Online (Sandbox Code Playgroud)

  • 这在Android 1中不起作用.*我很害怕.如果您感到满意,您仍然可以在针对1.5的应用中使用此功能,并使用try {String name = UserEmailFetcher.getEmail(this);干净地检测功能何时不可用.} catch(VerifyError e){//如果AccountManager不可用则发生(例如1.x)}你需要在你的清单中使用<uses-sdk android:minSdkVersion ="3"/>. (2认同)