要件
FlutterのヘルスケアSDKを用いて、iOSまたはAndroidのユーザーの歩数を取得します。
インストール
package:
https://pub.dev/packages/health
pubspec.yaml
health: ^4.1.1
セットアップ
Apple Health (iOS)
- info.plistに下記を追加
<key>NSHealthShareUsageDescription</key>
<string>We will sync your data with the Apple Health app to give you better insights</string>
<key>NSHealthUpdateUsageDescription</key>
<string>We will sync your data with the Apple Health app to give you better insights</string>
2.xcodeのtargetsのRunnerよりHealthKitのCapabilityを追加します
Google Fit (Android)
- AndroidManifest.xml権限の追加
Android SDK 28 (Android 9.0) 以降は下記の権限追加は必要です。
<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION"/>
運動距離が欲しい場合、さらに下記の権限が必要です。
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
- 歩数の場合、上記の権限だけでは足りません。特別に下記のパッケージを追加し、権限リクエストを追加します。
permission_handler
await Permission.activityRecognition.request();
- Android Xの場合、android/gradle.propertiesに下記ものを追記します。
org.gradle.jvmargs=-Xmx1536M
android.enableJetifier=true
android.useAndroidX=true
-
Google Cloudのセットアップ
- APIの有効化
アプリのGoogle Cloudのプロジェクタを作成した上で、APIを有効化する - アプリの証明書情報を確認
SHA1証明書の作成方法ここでは紹介しないが、確認方法はリンク先のサイトを参照して確認する
※ストア証明書の作成方法は下記のコマンドにて作成する
keytool -genkey -v -keystore release.jks -keyalg RSA -keysize 2048 -validity 10000 -alias release -storetype JKS
-keystore release.jksはファイル名 -alias releaseはアリアス名
- SHA1証明書を用いて、下記のリンクのサイトを参考し、OAuth2.0クライアントIDを作成
OAuth 2.0 クライアント ID - 個人情報を取得しているため、OAuth同意画面の作成が必要
Google Cloud Consoleの左側の画面から作成する
※公開すると、OAuth同意画面はGoogleへ審査してもらう必要がある
OAuth同意画面審査について、ご参考できる記事のリンクを転記します。
https://docs.sakai-sc.co.jp/article/programing/trial-google-api-ouath-verification.html
- APIの有効化
使い方について
下記ページのExampleを確認してください。
https://pub.dev/packages/health
トラブルシューティング
Androidで上記SHA1証明書はデバックmodeで生成した場合、証明書のPCしか機能しないです。その他の開発者にも使わせたい場合はkeystore証明書を使ってください。