ドラクエウォークのGPS取得方法AとBの違いとは(ログから解析)
notwork_dqwalk_gps
スポンサーリンク

位置情報の取得方法のAとBの違いとは

ドラクエウォークのシステム設定にあるGPS取得方法の違い

ヒーラー
ドラクエウォークのGPS取得方法の違いが未だに不明

はじめに

Android版のドラクエウォークには、GPS取得方法を切り替える機能があります。
設定画面のシステムを表示すると、GPS取得方法にAとBの選択肢があることが分かります。

公開当初はなかった機能であり、大々的に説明もないため、あまり認知されていない機能です。

システム設定

運営からも明確な説明はなし

GPS取得方法のAとBの違いはなにか、運営に問い合わせても、明確な回答はありません。

GPS信号が取得しづらい状況の場合「GPS取得方法」を[A]から[B]へ切り替えていただくことで改善されることがございます。

運営の回答より

アプリ起動時やゲーム中に「GPSの信号を探しています」と表示され、現在位置がわからない状態になることがあります。そんなGPS信号が通信制限や電波の遮断などで取得しづらい状況で使うべき機能だということが分かります。
しかし、AとBが何を表していて、どんなときにこのモードを切り替えなければならないかがわかりません。

AからBに切り替えて改善する傾向

位置情報が取得できないトラブルは、GPS取得方法をAからBに変えることで改善したという声が多いようです。
この時点ではAよりもBの方が精度が高いのだろうか予想されます。

考察

権限の違いによるものか

GooglePlayストアのアプリの権限を見てみると、位置情報について2種類の情報があることが分かります。

Google Play アプリの権限
正確な位置情報(GPSとネットワーク基地局)

技術的には「ACCESS_FINE_LOCATION」という権限がついており、GPSに加えWi-Fi、セルラー、モバイルデータなど、利用可能な位置情報プロバイダを使用し、できる限り正確な位置情報の特定を行います。

大まかな位置情報(ネットワーク測位)へのアクセス

技術的には「ACCESS_COARSE_LOCATION」という権限がついており、Wi-Fiかセルラー(モバイルルータ)、あるいはその両方を使用し、都市の1区画程度の制度で位置情報の特定を行います。

これらの精度とバッテリーの消費はトレードオフです。

しかし、GPS取得方法のAとBの違いが、上記2つの切り替えというわけではなさそうです。
AもBもGPS取得方法と記載されていることから、GPSが前提となっていますし、ドラクエウォークのゲーム性質上、精度の高い位置情報でなければ成り立ちません。

ログ解析

AからBに切り替えたときと、BからAに切り替えたときのログを解析してみました。

A→B
/? D/DeviceMonitor: GPS request stop:com.square_enix.android_googleplay.dqwalkj pid:xxxx interval(s): -1 reqId:xxxx
...
/? I/DeviceMonitor: GPS_END uid:xxxx time:xxxx total:xxxx currentScrnOff : null
...
/? D/DeviceMonitor: GPS request start:com.google.android.gms pid:xxxx interval(ms): 10000 reqId:xxxx
...
/? I/DeviceMonitor: GPS_START uid:xxxx
...
B→A
/? D/DeviceMonitor: GPS request stop:com.square_enix.android_googleplay.dqwalkj pid:1xxxx interval(s): -1 reqId:xxxx
...
/? I/DeviceMonitor: GPS_END uid:xxxx time:xxxx total:xxxx currentScrnOff : null
...
/? D/DeviceMonitor: GPS request start:com.google.android.gms pid:xxxx interval(ms): 10000 reqId:xxxx
...
/? I/DeviceMonitor: GPS_START uid:xxxx
...
/? I/WifiScanLog: Key#57: start new Scan by --bosz
...
/? D/wpa_supplicant: wlan0: nl80211: Scan trigger
/? D/wpa_supplicant: wlan0: Event SCAN_STARTED (46) received
/? D/wpa_supplicant: wlan0: External program started a scan
...

ドラクエウォークのパッケージ名のdqwalkが含まれる行や、GPSやWiFiに関連するだろう行だけかいつまんで比較してみました。

すると、BからAに切り替えたときには、WiFiのスキャンと思われるログが見つかりました。

考察からの推論

他のサイトの情報では、AとBどちらかがGPSでどちらかがWiFiだろうという解説をしているところもありますが、少し違いそうです。

BよりもAの方が高精度?

まず、AとBどちらも切り替えた瞬間は、一度GPSの機能をOFFにしてONにし直しているように考えられます。
そして、Aの方では更にWiFiの情報も追加して、より精度が高い位置情報を取得しようとしているように考えられます。

AからBに切り替えて改善する傾向があることから、一時はAよりもBの方が精度が高いと予想しましたが、どうやら逆のようです。
WiFiの情報を追加したがために相応しくないケースがあるのかもしれません。
憶測ですが、WiFiが繋がりにくかったり、公衆WiFiなどで意識せずに繋がってしまった場合や未認証だった場合などがあるのかもしれません。

つまり、WiFiが不安定の場合には、AからBに切り替えるのが有効なのかもしれません。

AではA-GPSデータを補助的に使っている?

GPSには、A-GPS(Assisted GPS)という補助的なものがあります。
GPSの位置情報を取得するには本来時間がかかるため、高速化をはかるため定期的に衛星情報をダウンロードしてキャッシュしている場合があります。

ログの中でBからAに切り替えた方には、ストレージへのアクセスのログも見られました。
ひょっとしたらこのA-GPSの情報を更新したり読み取りしているのかもしれません。

その場合、キャッシュの情報と矛盾があったり、通信に失敗したりと、何かしらの不整合があった結果、Aモードで「GPSの信号を探しています」と機能していないのかもしれません。

すべて憶測にすぎませんが、ドラクエウォークの運営側も不正を防ぐため対策した結果なのだろうと考えられます。

追記
ドラクエウォーク公式Twitterが「いいね」をしてくれました。
公式ハッシュタグの「#DQウォーク」を付けていないのに見つけてくれましたね。

Twitterいいね

スポンサーリンク

Twitterでフォローしよう

おすすめの記事