あらまし
- FCMとAndroidでプッシュ通知やろうとして戸惑った話(よく考えるとQiitaに全部書いてある)
- AndroidプロジェクトでWear OSを含むプロジェクトを作成するとwearとmobileが作成される
- 設定がぱっと見勘違いしたり、デバッグ用署名証明書の出し方でちょっと戸惑ったりしたので簡単な手順を書いておく
作成したもの
- Android側アプリ - GitHub ddfe503
- PC側Python - GitHub c2365d7
参考になった参考URL
手順
1. 参考URL1でFirebaseでプロジェクト作成しておく
- プロジェクト作成中にデバッグ用署名証明書SHA-1を求められる
- MacOSの場合は以下のコマンドで
keytool -v -list -alias androiddebugkey -keystore ~/.android/debug.keystore
- 要注意:パスワードを要求されるが、おそらく何もないのがデフォルトのため、そのままEnter
- プロジェクト作成中にbuild.configの編集が紹介されるがとりあえずスルー
2. Android Studio上で環境セットアップ
- Android StudioのTools>Firebase>Cloud Messaging>Set up~を選択
- ①Connect to Firebaseする
- ②Add FCM to your appする
3. app(mobileやwear)のbuild.gradleを編集する
- そのままだとうまくいかなかったため編集
mobileのbuild.gradle
dependencies {
// もともとある以下のようなplay-serviceは削除
// implementation 'com.google.android.gms:play-services-wearable:+'
// 必要なものを追記
implementation 'com.google.firebase:firebase-messaging:11.8.0'
implementation 'com.google.firebase:firebase-core:11.8.0'
//必要なものを追記
implementation 'com.google.android.gms:play-services-base:11.8.0'
implementation 'com.google.android.gms:play-services-gcm:11.8.0'
}
wearのbuild.gradle
dependencies {
// もともとある以下のようなplay-serviceは削除
// implementation 'com.google.android.gms:play-services-wearable:15.0.0'
//必要なものを追記
implementation 'com.google.android.gms:play-services-base:11.8.0'
implementation 'com.google.android.gms:play-services-gcm:11.8.0'
//必要なものを追記
implementation 'com.google.firebase:firebase-messaging:11.8.0'
implementation 'com.google.firebase:firebase-core:11.8.0'
}
4. とりあえず通知を送ってみる
- サービスが必要なのかと思い込んでいたが、通知を送るだけなら必要ない
- アプリをインストールしバッググラウンド状態にする
- 参考URL2の雰囲気で通知送る
- バッググラウンドで通知送るだけならManifestの編集とかもいらない
- 冒頭に挙げたPythonスクリプトでも送れる
参考
- KotlinでAndroidのFirebaseトークン確認
- onCreateにでも貼ってください
val CurrentToken = FirebaseInstanceId.getInstance().token
Log.d(TAG, CurrentToken)