예 가능하고 간단합니다. 시작하기 전에 AndroidManifest.xml 하나의 권한을 추가해야합니다.
<uses-permission android:name="android.permission.GET_ACCOUNTS"></uses-permission>
기기와 연결된 계정을 읽을 수 있습니다. 그런 다음 앱에서 다음을 수행합니다.
Account[] accounts = AccountManager.get(context).getAccountsByType("com.google");
그러면 사용자의 모든 Google 계정이 반환됩니다.
public static String[] getAccounts(Context context) {
Account[] accounts = AccountManager.get(context).getAccountsByType("com.google");
String[] names = new String[accounts.length];
for (int i = 0; i < accounts.length; ++i) names[i] = accounts[i].name;
return names;
}
이 기능은 장치의 모든 Gmail은 이메일 (구글 계정)의 문자열 배열을 반환합니다 : 귀하의 경우에 어쩌면 당신은 그래서 여기에 당신에게 줄 것이다 빠른 정적 기능입니다 만 이메일을해야합니다.
그러나 더 자세한 정보는 일부 Google 서비스와 "이야기해야"하는 경우 다음을 수행해야합니다. 먼저 매니페스트에 또 하나의 권한을 추가 :이 권한은 앱이 일부 Google 서비스의 앞에 사용자를 식별하기 위해 사용하는 자격 증명을 사용 할 수
<uses-permission android:name="android.permission.USE_CREDENTIALS"></uses-permission>
. 자격 증명 (암호)을 제공하지 않습니다.
일부 Google 서비스를 사용하려면 토큰이 필요합니다. 여기 그에 대한 빠른 기능입니다 : 당신이 토큰을 사용하면 단지 HTTP API를 일단
public static String getToken(Activity activity, String serviceName) {
try {
Bundle result = AccountManager.get(activity).getAuthToken(account, serviceName, null, activity, null, null).getResult();
return result.getString(AccountManager.KEY_AUTHTOKEN);
} catch (OperationCanceledException e) {
Log.d("Test", "Operation Canceled");
} catch (AuthenticatorException e) {
Log.d("Test", "Authenticator Exception");
} catch (IOException e) {
Log.d("Test", "Auth IOException");
}
return null;
}
그들이 가지고는 당신이 재미 :-)이
체크 아웃이 게시물에, 그것은 당신이 필요 수 있습니다 : http://stackoverflow.com/questions/3360926/get-main-gmail-account-username-in-android-2-0, 또는 아마도이 하나 : http://stackoverflow.com/questions/2112965/how-to -get-the-android-devices-primary-e-mail-address –