HTC Heroでのウォードライビング

少し前に、私は自分の地域でWi-Fiが開いている場所を見つけることにしました。 これを行うには、ラップトップとGPS受信機が必要でした。 ラップトップはすぐに見つかりました。 しかし、GPSを使用すると、苦労しなければなりませんでした。



私のガジェットの兵器庫からは、場所を特定できるのはHTC Heroだけでした。 私はPDAを受信機に変える作業プログラムを見つけられず、彼ら全員がBluetooth経由で電話を接続することを望んでいました。



アイデア





残念ながら、Androidでは公式のファームウェアを搭載した携帯電話でUSBを使用することはできませんが、ケーブルを介してデバッガーにログを送信することはできます。 これを利用することにしました。



実装





まず、Droidで既に作成されているプログラム(Log.i( "DroidGPS"、(NMEA + "\ n"));)にログを記録することを止めました。NMEA行でログを送信することが重要でした。 それを形成するために、私はインターネット上で見つかった動作しないプログラムからクラスを引き出しました。



LinuxではGoogle SDKも利用できるため、次のステップはコンピューターでログを取得することでした。 toolsフォルダからadbプログラムのおかげでそれらを入手できます。

spin@~$ ./androidSDK/tools/adb -s MYSERIALNUMBER -v raw DroidGPS:I *:S







rawパラメーターを使用すると、PIDプロセスなどの不要な情報なしでログ行のみを取得できます。 また、DroidGPSタグ付きのログのみを受信するように設定します。



接続





残念ながら、GPSDは/ dev / rfcomm0などのデバイスからのみ座標を取得できるため、fifoを使用して交換を確立する必要があります。

spin@~$ mkfifo /tmp/fifo







すべてのログをそこに投げます:

spin@~$ ./androidSDK/tools/adb -s MYSERIALNUMBER -v raw DroidGPS:I *:S &> /tmp/fifo







さて、最後にGPSDを有効にします。

spin@~$ gpsd /tmp/fifo







結果





タンバリンとのこのすべてのダンスのおかげで、私の悪魔は私が使うのが遅くない座標を取得し始めました。



PS電話用のアプリケーションをここに投稿しました: 7ion.ru/uploads/GPSlog.apk、SDK公式のAndroidサイトからダウンロードできます。



All Articles