GPS を使用するアプリケーションを開発しようとしています。より迅速に修正するために、XTRA データと時間参照を GPS に挿入したいと考えています。私のコードは次のとおりです。
Bundle bundle = new Bundle();
boolean xtraInjection=locationmanager.sendExtraCommand(LocationManager.GPS_PROVIDER,"force_xtra_injection",bundle);
boolean timeInjection=locationmanager.sendExtraCommand(LocationManager.GPS_PROVIDER,"force_time_injection",bundle);
インターネット接続がオンであろうとオフであろうと (携帯電話も WiFi もありません)、xtraInjection および timeInjection ブール値は常に true です。そのため、支援情報が GPS に適切に注入されているかどうかを検出できませんでした。
Wi-Fi 接続が有効になると、次のログ メッセージが表示されます (Wi-Fi がダウンしている場合はエラー メッセージは表示されません)。
I/app ( 627): timeInjection:true
....
D/GpsLocationProvider( 96): NTP server returned: 1306322421969 (WedMay 25 13:20:21 GMT+02:00 2011) reference: 338139 certainty: 77 systemtime offset: 7162
D/lib_locapi( 96): loc_eng_inject_time, uncertainty = 77
対照的に、XTRA データに関連するログ メッセージはありません。XTRA データがまだ有効な場合、システムはそれを要求しませんか? 正常に注入されたかどうかを確認するにはどうすればよいですか?
これらのテストを行うために、支援データの削除も試みましたが、これがうまくいかないことはわかっています。
私のコード:
boolean reset=locationmanager.sendExtraCommand(LocationManager.GPS_PROVIDER, "delete_aiding_data", null);
ログ:
I/app ( 627): reset:false
D/lib_locapi( 96): loc_eng_ioctl for aiding data deletion returned 0, 1 for success
GPS STATUS アプリケーションも試してみましたが、注入と削除の両方で結果は同じです。
つまり、問題がコードにあるのか、ドライバーの実装にあるのかわかりません。logcat 以外に、これらの問題に関する詳細情報を取得する方法はありますか? (デバイスをルート化できません)。
前もって感謝します