2014年11月27日木曜日

【Android】アカウントマネジャーから取得するアカウント情報はGoogleのもの以外のもの含むらしい

--------------------------------------------

//アカウントの一覧を取得
AccountManager account_manager = AccountManager.get(getApplicationContext());
Account[] google_accounts = account_manager.getAccounts();

for(Account google_account : google_accounts){
    if(google_account.name.matches(".*@gmail.com")){
        System.out.println("gmail : " + google_account.name);
    }else{
        System.out.println("gmailではない : " + google_account.name);
    }//if
}//for
--------------------------------------------

Androidで、上記のような処理によって、端末からアカウント情報の一覧を取得するとする。
配列「google_accounts」には、Googleのアカウント(@gmail.com)だけが入るかと思ったら、実はそうでもない。

「SkyDrive」「au ID」のような文字列もまじる。

グーグルアカウントだけを抜き出したい場合は注意する。

--------------
追記:
getAccountsByType("com.google")
というメソッドを使えば Googleのアカウントだけ取れるらしい。

0 件のコメント:

コメントを投稿