GoogleSignInAccountからメールアドレスの取得


GoogleSignInAccountからメールアドレスの取得の前提として、以下の記事をご覧ください。

AndroidからGoogleドライブへのファイルコピー

 

GoogleSignInAccount には、getEmail() というメソッドがあり、接続に使用したGoogleアカウントのメールアドレスが取得できるのですが、常時nullが返ってきます。

調べたところ、サインイン時のオプションに requestEmail() を付けないとダメだったようです。

BaseDemoActivity 内の GoogleSignInOptions 指定部分です。


GoogleSignInOptions signInOptions =
new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestScopes(Drive.SCOPE_FILE)
.requestScopes(Drive.SCOPE_APPFOLDER)
.requestEmail()
.build();

 

BaseDemoActivity から派生した Activity でのメールアドレス取得処理です。


String email = getGoogleSignInAccount().getEmail();

すでに接続済みの場合は、一旦サインアウトしてからサインインしなおす必要があります。