ディープスリープの対策を教えてください。

1,200 views
Skip to first unread message

さかたつ

unread,
Mar 15, 2019, 1:35:57 AM3/15/19
to 日本Androidの会
現在、Andoroid でプッシュ通知を受けさせるアプリを作っています。

受け側のAndroidがディープスリープに陥るとプッシュ通知を受けれなくなり困っています。

Wifi又はキャリア回線のどちらも同じく、ディープスリープでプッシュ通知が受けれません。

どのような対策をとればプッシュ通知が受けれるようになるのでしょうか?

ご教授をお願い致します。

Monxarat

unread,
Mar 17, 2019, 11:02:03 PM3/17/19
to android-g...@googlegroups.com

FirebaseライブラリのがonMessageReceived()を呼び出すようにするには。

  1. フォアグラウンドのアプリ
  2. バックラウンドのアプリ
  3. アプリは殺されました

onMessageReceived()はほとんどのメッセージタイプに用意されていますが、次の例外があります。
※アプリがバックグラウンドで動作しているときに配信された通知メッセージ:この場合、通知は端末システムトレイに配信されます。通知をユーザーがタップすると、デフォルトではアプリのランチャー開きます。
※バックグラウンドで受信されたときに通知とデータ ペイロードの両方を持つメッセージ。この場合、通知はデバイスの通知領域(システムトレイ)に配信され、データ ペイロードはランチャー アクティビティのインテントの追加部分で配信されます。

JSONキーの'notification'(通知メッセージ)をfirebaseAPIへのリクエストに入れてはいけません。代わりに、'data'(データ メッセージ)を使って下さい。

以下のメッセージは、アプリはバッグラウンドで実行されている時や強制終了されている時にはonMessageReceived()を呼び出しません。通知をカスタマイズすることができない。

通知メッセージ(フォアグラウンドにある場合): 「表示メッセージ」と見えなされることもあります。FCM SDKによって自動的に処理されます。
アプリは通知トイレで通知ペイロードを受け取り、ユーザーが通知をタップしたときにのみデータパイロードを処理します。

{
   "to": "/message/your_app",
   "notification": {
   "title" : "タイトル",
   "text": "メッセージ",
    }
}
Screenshot from 2019-03-18 11-54-51.png

しかし代わりにこれを使うといまくいくでしょう!

データメッセージ(バックグラウンドにある場合):クラいアンドアプリによって処理します。
アプリはどちらのパイロードも取得できる状態でメッセージオブジェクトを受け取ります。

{
  "to": "/message/your_app",
   "data": {
       "key_1":"value_1",
       "key_2":"value_2",
       ...,
       "key_n":"value_n",
   }
} 
Screenshot from 2019-03-18 11-55-48.png

2019年3月15日(金) 14:35 さかたつ <xta...@gmail.com>:
--
このメールは Google グループのグループ「日本Androidの会」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには android-group-j...@googlegroups.com にメールを送信してください。
このグループに投稿するには android-g...@googlegroups.com にメールを送信してください。
https://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。
Reply all
Reply to author
Forward
0 new messages