Androidデバイスマネージャーが応答しなくなる問題(解決)

知人がマラソン大会にエントリー、自分はサポートとして同行した。
公設の応援場所が設けられており、そこへ陣取り応援した。ただ、ランナーが目の前を通るのは一瞬である。意外と速いよ。人気イベントで参加者多数だと見落としてしまう。そこでAndroidデバイスマネージャーを使うことにした。

Android device manager

google純正の位置情報特定アプリでgoogleアカウントに紐付いた端末がどこにあるか地図で返してくれる。テストでは問題なかったのだが、本番では途中から「ご利用いただけません」と位置情報を返さなくなってしまった。
 
イベント後、色々試した結果、以下のことがわかった。
  • Wi-Fiなら問題ない
  • モバイルネットワークでも画面点灯中は問題ない
  • iijmioの音声SIMなら問題ない
  • データ専用0simでスリープ後、位置情報返さなくなる
 
MVNOキャリアの種類が問題なのか、音声の有無が問題なのかは手持ち機材ではわからなかった。音声SIMであるかどうかの違いは突き詰められなかったため、ここでは単純にスリープ後、問題が生じたということにしておきたい。
 
同様の事例がないか検索してみた結果、いくつか引っかかるものが見られた。
いずれもgcm(google cloud messaging)で問題(セッションタイムアウト)が生じ、Googleサーバー側からのPUSH通知が飛ばなくなってしまう、というもの。
対策用のアプリがいくつもあり、問題に悩まされた人の多さを感じることができる。
 
HeartBeat Fixer for GCM
 
というものをインストールしたところ、デフォルトのセッティングで問題の発生は無くなったようである。これらアプリはOSとは別の動きでGCMサーバーとのセッションを定期的に張り直す。
モバイルネットワークの状態で一晩放置し、翌朝デバイスマネージャで位置検索してもすぐに応答を返してくるようになった。
 
数年前だろうか。Wi-FiだとPUSH通知が来ずGmail着信がわからないという問題があった。そのときは3GやLTEなどのモバイルネットワーク接続はOKなので、定期的にWi-Fiを切るようなアプリもあったような?
Andoridは7.0までバージョンが上がったが、常にこの辺りの問題を抱えているような印象がある。