LINE やメール着信、IP 電話着信、Rakuten Link 着信 など即座に通知されないと困るものがあり、これを可能にするための設定と、バッテリー消費の関係を調べています。
ネット情報ではこのようなケースに対応するために次のことをせよ、とあります。
1.省エネモード:オフ
2.スマート電力消費保護:オフ
3.省エネオプション → スリープ待機最適化:オフ
4.対象のアプリについて
「バックグラウンド実行を許可」に設定
「自動起動」をオン
5.フォンマネージャーを無効化(停止または無効化)
6.タスク一覧で当該アプリを「ロック」設定
これらの設定をするとバッテリー消費が著しく、また結構面倒で、誰でも理解の上でできるようなことではありません。
ほとんどの Andoid 機は、対象となる「アプリの最適化をしない」設定のみで済みます。
ところが Huawei / Xiaomi / OPPO などの中華スマホは独自の省エネ機構を持っていて、これが邪魔をしてスリープ中のプッシュ通知を取り逃がすことがあります。
OPPO の ColorOS は「アプリの最適化をしない」設定ができません。
代わりに独自の省エネ機構が搭載されているのですが、これがやっかいなシロモノです。
プッシュ系通知のために、本当にこのような設定が必要なのでしょうか。
前記のように「何々をせよ」という方はいても「何故なのか」という方はいません。
ですから「何々をせよ」が独り歩きしてしまっています。
私の OPPO Reno A はフォンマネージャーについては adb で無効にしてあります。
本当に必要なことをハッキリさせるために、省エネ関係の設定を一旦デフォルトに戻します。
1.省エネモード:オン
2.スマート電力消費保護:オン
3.省エネオプション → スリープ待機最適化:オン
4.対象のアプリについて
「バックグラウンド実行をスマートに制限する(推奨)」
「自動起動」をオフ
5.フォンマネージャーを無効化(停止または無効化)
6.タスク一覧で当該アプリを「ロックしない」
この状態でスリープ中でも、Whatsapp / LINE / Spark(メーラー)にはプッシュ通知がちゃんと届きます。
Softphone(Acrobits)も「プッシュ着信設定」していれば着信します。
Rakuten Link も着信します。
sms も Link で受信します。
にもかかわらず、冒頭のような設定をせよ、とおっしゃる方々がいます。
それはプッシュ系通知が失敗することが多々あるからです。
何故プッシュ系通知が失敗するのか、です。
プッシュ系アプリは FCM を通じて定期的に KeepAlive しており、いざというときに通知を受けられるようにしています。
ところが FCM エラー時にこの KeepAlive が失敗します。
06-05 13:16:47.323 net=0: Received
cz.acrobits.softphone.alien
0:16222866608401864%88513ceb9cceb7c4
06-05 13:16:47.345 net=0: No response to broadcast from cz.acrobits.softphone.alien(id=0:16222866608401864%88513ceb9cceb7c4 time=16ms priority=HIGH)
そのために FCM が切断状態ではプッシュ系通知が失敗してしまいます。
多くのスマホの場合はすぐに FCM を再接続して問題は自動的に回避されるのですが、なぜか中華スマホは「切れっぱなし」になっているようなのです。
OPPO も例外ではありません。
ColorOS(=pseudo Android OS)のせいなのでしょうか。
台湾の MTK チップを使っているせいでしょうか。
pseudo ではない Android OS だからでしょうか。
FCM が正常に接続している状態では次のようになります。
06-05 13:19:09.499 net=0: Successful
broadcast to cz.acrobits.softphone.alien
(id=0:1608401864%88513ceb9cceb7c4 time=135ms priority=HIGH)
06-05 13:19:09.527 net=0: Acked
cz.acrobits.softphone.alien:0
0:16222866608401864%88513ceb9cceb7c4
「WiFi 接続を維持する」設定もできませんので、これはほぼお手上げ状態です。
これは網側で Link が応答しないために標準側に切り替えますが、10 秒ほど切り替えにかかり,この間は発信側は呼び出し音が鳴らず無音状態です。
これは困ってしまいます。
これを回避するには WiFi をオフにして LTE にし、FCM を LTE で接続状態にします。
LTE では FCM が切れにくいようです(通常の通話や sms に差し支えがあるからでしょう)。
省エネ関連設定がデフォルト設定の場合でもちゃんと再び通知がくるようになります。
または画面を一度オンにし、現在の WiFi-AP での接続を確認し、FCM 接続状態にします。
ただし、WiFi はスリープで再び切れることがありますので、WiFi オフの方がいいでしょう。
0 件のコメント:
コメントを投稿