SoftBank RTKのAndroidアプリ開発で困っている方へ

これまで、RTKは自前の基準局を設置して使用していましたが、数キロメートル離れるとFIXが不安定になったり、利用がない夜間も稼働し続ける非効率さと高コストが課題でした。

これらの問題は、SoftBankの「ichimill」やNTTドコモのIoT高精度GNSSサービスが月額数千円で解決。全国の基準点ネットワークを活用し、センチメートル級の測位を低コストで提供します。

現在、両サービスに対応するAndroidアプリを開発中ですが、受信機との接続で課題がありました。Bluetooth接続は問題なく動作するものの、USB接続ではNTTドコモは動作する一方、SoftBankは接続できていませんでした。

今夜、試行錯誤の末に解決!同じ悩みを抱える方のために、解決コードを共有します。

問題と解決方法

以下のコードでは、SoftBankのNtripサーバーURLを正しく解決できませんでした:

java

Socket socket = new Socket(url, Integer.parseInt(n_port));

試行錯誤の結果、以下のようにInetAddressを使用することで接続に成功:

java

InetAddress address = InetAddress.getByName(url.trim());
Socket socket = new Socket(address, Integer.parseInt(n_port));

ポイント

  • url.trim()で余分な空白を除去し、URLをクリーンに。
  • InetAddress.getByName()でURLをIPアドレスに解決してからSocketを生成。

この方法でSoftBankのNtripサーバーとのUSB接続が安定しました。同じ問題に直面している方の参考になれば幸いです!


参考情報:

NTTドコモ「docomo IoT高精度GNSS位置情報サービス」公式サイト
https://www.ntt.com/business/services/highprecision_gnss_positioning.html

SoftBank「ichimill」公式サイト
https://www.softbank.jp/biz/services/analytics/ichimill/