Galaxy S(SC-02B)のGPS

追加: Android 2.3.3でのGalaxy SのGPS
私のGalaxy SもGPSは正常に位置を検出できないことがあります。当初は正常に動作していたのですが、いつの間にか不調になりました。その後、ネットの情報を参考に設定変更を試してみたところ改善したように見えますが、完璧ではないです。当初の症状は以下のようなものでした。

  • GPSを使うアプリケーションで位置の検出ができないか、非常に時間がかかるようになることがある
  • 正常に位置が検出できるときは10秒くらいで検出できて、その後の動作も問題ない(RunKeeperやマップナビでも使えるレベル)

Googleマップなんかではタイムアウトしてしまっているようでした。b-mobileの回線だからでは?という情報も見かけますが、GDD PhoneやXperiaのときと比べても明らかに動作が不安定なのでやはりGalaxy S自体に何か問題があるのではないかと思います。

GPS Status

調子の悪い時にGPS StatusというGPSの動作状況をモニタリングできるアプリケーションで確認すると、衛星は5-10個くらい補足できていても位置が検出できないか、非常に時間がかかるようです(数分位)。時間がかかるのは、A-GPSが機能していないのでしょうか?このツールでA-GPSデータのリセット/再ダウンロードができるのですが、特に改善されませんでした。

GPS設定変更

参考にあげたサイトにある設定変更は、手順は違えど以下の設定ファイルを変更しています。情報としては、私が少し調べて得られた情報は、価格.comこのクチコミにほぼ網羅されていると思います。

  • /system/etc/gps.conf
  • /data/gps/secgps.conf
gps.conf

gps.confではNTPサーバの指定を変更します。pingしてみればレスポンス自体が早くなるのはわかりますが、(これで改善したという情報もありますが)GPSの動作自体にそれほど影響を与えるものかな??とは思います。

NTP_SERVER=north-america.pool.ntp.org

NTP_SERVER=jp.pool.ntp.org

secgps.conf

secgps.confの設定方法もいろいろあるようですが、電話アプリから「*#3214789650*」をダイヤルしてGpsSetup2を実行するのが一番手軽です。ただしすべての値を変更できるわけではないようです。

GpsSetup2が起動したら設定を変更します。A-GPSのサーバーアドレスがデフォルトでは"dcm-supl.com"になっておりdocomoの回線以外からはアクセスできないようなので、b-mobileではA-GPSが有効にならないのかもしれません。ただ、ここの変更だけでは改善されなかったのですが。。





ここはgpsOneXTRAの設定だとするとGalaxy Sは搭載されていないので関係ないのでは?という気もします。

設定を変更して本体を再起動します。最終的なsecgps.confは以下のような内容になっています。

SSL=0
SSL_TYPE=0
POSITION_MODE=121
OPERATION_TEST_MODE=0
ACCURACY=1000
SESSION_TYPE=1
SERVER_MODE=1
ENABLE_NMEA=false
START_MODE=HOT
GPS_LOGGING=0
AGPS_MODE=0
DYNAMIC_ACCURACY=1
ADDRESS_MODE=1
TIME_BTW_FIX=1000
OPERATION_MODE=STANDALONE
USE_DEFAULT=true
DYNAMIC_ACCURACY_VALUE=50
SUPL_PORT=7276
ENABLE_XTRA=true
SUPL_HOST=supl.google.com
NUM_OF_FIX=999999999
TIMEOUT=3600

現状の結論

設定変更によって改善するようですが、根本的に解決はしていないようです。参考にしたサイトでも治ったようで再発したり、同じ設定でも端末によって効果がマチマチ、ということもあるようなので、いじったり再起動したりしているうちにたまたま治っているだけかもしれません。いまのところ、位置が検出できなくなってしまった場合には、

  • GPS StatusやGPS Testを起動して検出できるまで放置する
  • 再起動してみる

を試してみれば、だいたい検出できています。何か分かればまた追記したいと思います。