2016/06/04

[android]FirebaseのNotificationを受けるアプリも作りたいが、うまくいかん

うまくいかんシリーズだ。

 

ESP8266からPOSTしたら、たぶんNotificationしてAndroidアプリで受け付けることができるんだろう。

よくわからんなりに、Firebaseのコンソール画面から左側の「Notifications」を選び、Androidを選択。
そして、適当に項目を埋めた。
そのときにアプリのパッケージ名がいるようなので、同じ名前で作る。
親切にも、Android Studioでどうしたらいいかのガイドが出てくるので、従う。

  • ダウンロードしたJSONファイルをドラッグ&ドロップ
  • build.gradleを、プロジェクト直下とapp内の両方を書いてあるとおりに変更

が、送ってこないね。。。

こちらを見ると、「firebase-core:9.0.2」も追加するようなのだけど、見つからないと怒られる。
Add Firebase to your Android Project  |  Firebase
「firebase」でライブラリを検索するといくつか出てくるのだが、「firebase-core」だと出てこない。。。

 

あ、やりたいことによって追加するライブラリが違うんだ。
https://firebase.google.com/docs/android/setup#available_libraries

と思ったが、そもそも候補に出てこないのだ。

 

ん?

image

2.2 preview?
でも、これはInstant Runだけの話だよなぁ。
Google Play services 9.0.2以降がインストールされていればよいっぽいのだが。

あら、今気付いたが、インストールしているGoogle Play servicesのバージョンは「30」だ。

よくわからんが、Standaloneの方のSDK Managerを使ってインストールして再起動すると、エラーが出なくなった。
まあいいや。

compile 'com.google.firebase:firebase-messaging:9.0.2'

を追加した。
コンソール画面で出てくる説明は、全体としての説明で、ここのサービスについては必要なライブラリを組み込むことになるようだ。
まあ、1行だけなんだけどね。

 

が、Notificationは飛んでこない。
JSONファイルは読んでいるようなのだが、signature not valid、なんて言われている。

うーん。。。

android - GoogleSignatureVerifier signature not valid message (not using the google maps api) - Stack Overflow

「バグで偽のログが出てるけど、動作には影響しないので修正するまで我慢して」と言っているのかな?


アプリを新しく作って、build.gradleに埋め込んでおけば通知バーに何か出てくるのかと思ったけど、そんなに甘いものじゃないのかな?

Receive and handle notifications

フォアグラウンドで動くときは何もいらないかと思っていたけど、何か追加しなさいと言っているな。。。

FirebaseMessagingServiceをextendsして、onMessageReceived()をoverrideしてログを出すようにしてみたが、呼ばれんな。


あれ、Nexus5で動かなかったのでNexus7でやっていたのだが、いま見たらNexus5の方にはNotificationが出ている。

image

Nexus5の方は、まだFirebaseMessagingServiceなどを追加する前だ。
じゃあ、別に今のままでもよいということか?
ううーん。。。


送信して1時間ほど放置したが、届かなかったので、Nexus5を再起動させた。
そのおかげかどうかわからないが、送信したら届くようになった。

・・・あら、来ない。
次に送ったら、来たけど、受け取れてないのもあるな。
うーん。。。
本体がスリープ状態(LCD消灯)してるけど、電源ボタンを押すと通知が来ているのよね。

通知が受け取れると言うことは、アプリは別にこのままでよいということなのか?
わっからーん。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。