Android:android marketのログインIDを取得する


最近、ユーザーが私たちのアプリケーションで要求を提出するときに、ユーザーの表示を得る必要があります.
いくつかの考慮を経て、ip addressを発見したり、android deviceの唯一の標識を見つけたりするのは理想的ではありません.
最終的に、android marketにログインするためのgmail accountや、マシン上に配置されたmailアドレスなど、ユーザーマシンのメールアドレスから選択します.
これらのemailアドレスを使用して、ユーザーif necessaryにアクティブに連絡することができます.
習慣的なgoogleは一周して、android device primary email addressとandroid owner's email addressの2つの役に立つリンクを見つけました.
マシン上のアカウント情報を取得するのは簡単ですが、AccountManagerの使用が鍵です(Android 2.0+)
第一:権限を明らかにする
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
第二:AccountManagerオブジェクトを取得し、account typeがcomであることをクエリーする.Googleのアカウント
AccountManager accountManager = AccountManager.get(context);
Account[] accounts = accountManager.getAccountsByType("com.google");

またはすべてのaccountを取得し、ループして自分の条件に従って一致するaccountを検索します.
Account[] accounts = AccountManager.get(this).getAccounts();
for (Account account : accounts) {
  // TODO: Check possibleEmail against an email regex or treat
  // account.name as an email address only for certain account.type values.
  String possibleEmail = account.name;
  String emailType = accoun.type;
}