2012年11月19日月曜日

Android 4.2のエミュレーターには予め「Google Play開発者サービス」がインストールされている!

「Google Play services」でのOAuth2の認証については、

琴線探査: 「Google Play services」のOAuth2認証に依存したAndroidアプリを書くとエミュレーターでデバッグできなくなるのではないか?

という疑問から始まり、「Google Play開発者サービス」をエミュにインストールするために、何とか「Google Play Store」をインストールしようと苦悶した。

琴線探査: 「Google Play Store」をエミュレーターにインストールできるか?

しかし、もうエミュに「Google Play Store」や「Google Play開発者サービス」をインストールする必要は無い。

なぜなら、最近のSDKのバージョンアップでリリースされたAndroid 4.2のエミュ(Google APIsのAPI Level 17)には予め「Google Play開発者サービス」がインストールされているようだからだ。

このことを検証するために、上の記事で動作しなかった「Google+ SDK Sample」を4.2のエミュで動作させてみる。

まず、このような設定でAVDを作った。


このエミュを起動しつつ、このエミュ上で「Google+ SDK Sample」を起動する。


「Sign in」をクリックするとこのような画面になる。


赤いGoogle+の「Sign in」ボタンが見えている。

ということは、この時点ですでに「Google Play開発者サービス」がインストールされていることは確実だ。なぜなら、もしインストールされていなければこのボタンは表示されないから。

「Sign in」ボタンをクリックするとアカウント追加画面になる。


その後、TOSへの同意とバックアップするかどうかの画面が出た後、新しいOAuth2の認証画面が表示される。


「Allow」すると元の画面に戻ってくる。


「Signed in.」していることがわかる。

つまり、4.2エミュでは「Google Play開発者サービス」はインストールされていて、「Google+ SDK Sample」も動作する!というわけ。