2021-10-15

OPPO A73 でプッシュ通知がこない対策



OPPO A73 は、ディープスリープ中に LINE / gmail / IP電話 / Rakuten Link などが、通知漏れする問題があります。

 

 

 

OPPO ほか中華系スマホ(Xiaomi/Huawei など)は独自の省エネ機構を持っていて、これが理由でディープスリープ中のプッシュ通知を受け取れないことがあるのです。



 

OPPO A73 の場合、ネット情報では次の設定をするとよいとされています。

 

 

 

[設定] → [バッテリー] と進み、

 

 

・省エネモード:オフ

 

・[アプリのバッテリー使用状況]:当該アプリについて

 

 バックグラウンドアクティビティを許可:オン

 自動起動を許可:オン

 

・[詳細なバッテリー設定] → [高パフォーマンスモード]:オン

 

・[タスク管理画面] → 当該アプリを「ロック」



を設定し、adb コマンドで Athena とフォンマネージャーを無効にします。

 

 

 

 

ところがこれらの設定をしても、ディープスリープではプッシュ通知を受け取れない事象に見舞われます。

 

 

 

 

 

なぜこのようなことが起こるのでしょうか。

 

 

 

実は FCMFirebase 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 件のコメント: