Google Fit への挑戦

ダークサイド脱出

最近ダークサイドに落ちてたため、何かやる気を起こさせるものはないかと考えていたところ、
Googleからの挑戦状が....
f:id:mondayboy:20141208011359p:plain

ちょうどいいタイミングやし、チャレンジしてみます。

Google Fitでなにができるのか?

1.The fitness store

googleクラウド上に永続的に保存可能なデータストア。
APIを使用して簡単にデータの追加、検索することが可能。

2.The sensor framework

フレームワークにより、センサー情報、セッション等の管理が容易になる

3.Permissions and user controls

アプリケーションに応じた柔軟なアクセス制御が可能

これだけではよく分からないので、とりあえずサンプルを使ってみよう!!!

Step1 Google Play Serviceインストール確認

  1. まず端末にGoogle Play Service(開発者サービス)がインストールされているか確認します。Google Play ServiceはGoogleサービスへの認証、同期といったコアな機能を持っており、Google FitではGoogle Play Serviceの機能を利用しているため、必要となります。確認方法は端末の設定画面(Settings > Apps > Google Play services)から確認可能です。日本語ではGoogle Play 開発者サービスと表示されます。
  2. 開発PCにGoogle Play Serviceのライブラリがインストールされていない場合はSDK Managerを使用してインストールします。f:id:mondayboy:20141130234054p:plain

今後のことも考え、以下のパッケージをインストールしました。
(a) Android SDK Tools
(b) Android SDK Platform-tools
(c) Android Support Repository
(d) Android Support Library
(e) Google Play Service
(f) Google Repository

Step2 Googleアカウント取得

Google Fitness APIを使用するために、Gooogleアカウントが必須なので、アカウントを作成します。

Step3 Google Fitness API有効化

  1. Developer Consoleから新規にプロジェクトを作成します。f:id:mondayboy:20141202063327p:plain
  2. 一覧からFitness APIを選択し、有効化します。f:id:mondayboy:20141202064451p:plain

Step4 デバッグキーストアの生成

  1. ターミナルから以下のコマンドを実行すると、パスワードの入力を求められるのでパスワードを入力し、debug.keystoreを生成します。*1

keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -validity 10000 -dname "CN=Android Debug,O=Android,C=US"

Step5 証明書作成

  1. 作成したデバッグキーストアより証明書*2を作成します。

# keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -list -v
Unable to find a $JAVA_HOME at "/usr", continuing with system-provided Java...
キーストアのパスワードを入力してください:
別名: androiddebugkey
作成日: 2014/12/02
エントリタイプ: PrivateKeyEntry
証明連鎖の長さ: 1
証明書[1]:
所有者: CN=Android Debug, O=Android, C=US
発行者: CN=Android Debug, O=Android, C=US
シリアル番号: 547ceee6
有効期間の開始日: Tue Dec 02 07:42:46 JST 2014 終了日: Sat Apr 19 07:42:46 JST 2042
証明書のフィンガープリント:
MD5: F4:DD:E2:C2:24:5F:47:4B:58:E5:60:2D:90:AD:05:A6
SHA1: 2D:A6:C0:8B:EB:B6:32:97:9E:B1:7C:7D:31:C7:7A:6E:D2:AA:73:87
署名アルゴリズム名: SHA1withRSA
バージョン: 3

Step6 クライアントID作成

  1. Developer ConsoleからクライアントIDを作成します。f:id:mondayboy:20141203063809p:plain
  2. 「インストールされているアプリケーション」を選択し、「同意画面設定」ボタンを押します。f:id:mondayboy:20141203063810p:plain
  3. 必要な情報を入力し、「作成」ボタンを押します。f:id:mondayboy:20141203063811p:plainf:id:mondayboy:20141203063812p:plainf:id:mondayboy:20141203063813p:plain

Step7 サンプルプログラム

まずは勉強がてらにandroid-fitサンプルプログラムをインポートします。

  1. App compat library v7*3をプロジェクトのライブラリとしてインポートします。*4f:id:mondayboy:20141208014028p:plain
  2. Google Play Service libraryをプロジェクトとしてインポートします。f:id:mondayboy:20141208014719p:plain
  3. android-fitのサンプルプログラムをインポートし、プロジェクトのライブラリを追加します。f:id:mondayboy:20141208015146p:plain

以上でサンプルプログラムが動作するところまで来ました。ここまでくるのに結構四苦八苦してしまったわ〜。
あとはコードを見て勉強しようかなと思います。

*1:表示文字が文字化けする場合は、ターミナルの文字コードをShift-JISに設定します。

*2:SH1のハッシュ値

*3:android3.xから対応されたactionBarを2.x系でも対応するライブラリ

*4:リソースファイルが見つからない旨のエラーが発生したのでproject.propertiesファイルのtargetをandroid-21に変更