OPPO A73 は、ディープスリープ中に LINE / gmail / IP電話 / Rakuten Link などが、通知漏れする問題があります。
OPPO ほか中華系スマホ(Xiaomi/Huawei など)は独自の省エネ機構を持っていて、これが理由でディープスリープ中のプッシュ通知を受け取れないことがあるのです。
OPPO A73 の場合、ネット情報では次の設定をするとよいとされています。
[設定] → [バッテリー] と進み、
・省エネモード:オフ
・[アプリのバッテリー使用状況]:当該アプリについて
バックグラウンドアクティビティを許可:オン
自動起動を許可:オン
・[詳細なバッテリー設定] → [高パフォーマンスモード]:オン
・[タスク管理画面] → 当該アプリを「ロック」
を設定し、adb コマンドで Athena とフォンマネージャーを無効にします。
ところがこれらの設定をしても、ディープスリープではプッシュ通知を受け取れない事象に見舞われます。
なぜこのようなことが起こるのでしょうか。
実は FCM(Firebase Cloud Messaging) がエラーになっていて、通知を受け取れなくなっているのです。
FCM はプッシュ通知を受け取る Android OS の仕組みで、一定間隔で Google のプッシュサーバーと KeepAlive しています。
アプリはというと、アプリのサーバーとの間で FCM を介してプッシュ通知を受け取る仕組みです。
KeepAlive がエラーとなって FCM が切断状態のとき、ディープスリープ中に接続回復できていないとプッシュ通知が失敗します。
では FCM の KeepAlive がエラーになるのはどういう場合でしょうか。
これについては当ブログの以前の記事 OPPO Reno A のプッシュ系通知の考察 に少し詳しく触れています。
上の記事では OPPO を始めとする中華系スマホではディープスリープで Wifi が切られていて、そのために FCM が切断状態に陥っていることを検証しています。
したがって対策は WiFi をオフにしてモバイルデータ通信状態にすること です。
モバイルデータ通信状態だと FCM エラーになりにくく、その結果プッシュ通知が届くようになります。
バッテリーの各設定は省エネモードを始め、デフォルトで構いません。
OPPO 機の場合は、さらにフォンマネージャーを無効化した方がいいでしょう。
WiFi をオフにするというのは Xiaomi / Huawei でも同様に有効と思われます。
自宅で長時間使わない場合を除いて WiFi はオンで構いません。
長時間使わない、というのは夜間など 数時間以上使わない場合のことです。
OPPO A73 は Felica は非搭載ですが、その他の面では大変コスパがいいと思います。
バッテリー保ちもいい方でしょう。
ただし、最初から入っているアプリは不要なものが多いのが難点です。
これらの多くはアプリの設定では削除も無効にもできません。
削除もしくは無効化は adb コマンドを使う必要がありますが、これを行えば申し分ないでしょう。
0 件のコメント:
コメントを投稿