GpsStatus.Listener からGSP衛星を取得する一連の処理


GpsStatus.Listener にて、「みちびき」とGPS衛星1番の区別がつかなくなる件について、Android フレームワークを調べてみました。

結論からいうと、ハードウエアのドライバーの段階で、そうなっているようです。

GPS には libgps.so というドライバーを使っています。
これのソースは見つかりませんでしたが、ヘッダファイル gps.h は見つかりました。
gps.h にて、GpsSvInfo という構造体が定義されています。
ここの prn が、GpsSatellite の PRN になっているようです。
libgps.so からは、次のような流れで、GpsSatellite が取得されるようです。

libgps.so ( gps.h GpsSvInfo )
IGpsStatusListener#onSvStatusChanged
LocationManager#getGpsStatus (公開API)
GpsStatus#getSatellites (公開API)
GpsSatellite

参考
[ANDROID] Final Vogue Kaiser GPS Support
 libgps.so を使う話
codetastrophe SatInfo
 IGpsStatusListener#onSvStatusChanged をリフレクションで使う例


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です