SensorCast ~ 指定IPアドレスにGPSデータをUDP送信

2024年6月7日

今までにスマートフォンで取得したGPSデータを指定IPアドレスに送信する記事を出してきましたが、そのスマートフォン側のアプリケーションをGoogle Playに登録しました。

というのも、Raspberry PiやM5StackでGPS受信機を付けるアプリケーションを組んでも、実際に使おうとすると面倒だったり、うまくリンクできなかったりして、あまり使わないことが多いのです。

そこで、Raspberry PiやM5Stackは表示専門に徹してもらって、元データはスマートフォンで処理してみたらと考えたわけです。また、今まで公開しているスマートフォン側のソースが断片的なため、記事を読んだ人が実際にプロジェクトを作ってアプリケーションを作るのは敷居が高いだろうということで、アプリケーションを一般公開することにしました。

とは言っても、IPアドレスとポート番号を指定するだけのアプリケーションです。そして、送信されるUDP送信文字列は

高度,速度,緯度,経度 ※カンマ区切り

という、超シンプルなものです。少しずつ、送信データ項目を増やそうとは思っていますが、需要も少ないと思うので気長にやっていきたいと思います。

Google Playへのリンクは以下のとおりです。

注意事項

(1).当アプリを利用した際の、直接的または間接的な損害・損失・不利益・精神的苦痛などに対して、kunimiyasoftは一切責任を負わないものとします。
(kunimiyasoft assume no responsibility whatsoever for any direct or indirect damage, loss, prejudice or emotional distress caused by use of this Application)

(2).当アプリは位置情報を利用します。位置情報は消費電力が比較的大きく、特にGPS機能がONになっていると多く電力を消費します。利用する際はバッテリー残量に注意してください。

(3).アイコンは、CoPilotにて作成しました。

SensorCastのプライバシーポリシー(privacy policy)

  • 位置情報の使用
    現在位置、高度、速度の取得に位置情報を使用します。
  • インターネットへのアクセス
    UDP送信のために、インターネットへアクセスします。データ通信が使われることをご了承ください。
  • 個人情報
    個人情報は取得しません。個人情報、位置情報をネットを介してkunimiyasoftへ通知する仕組みはありません。

android.os.NetworkOnMainThreadException

Google Playに登録作業をしているのですが、リリース前レポートで

android.os.NetworkOnMainThreadException

が出る機種が報告されて、登録が完了しません。これは、メインスレッドでネットワーク操作を実行しようとしたときに発生する例外です。非同期にしなければならないことは分かっているのですが、非同期のやり方に問題があるようです。しばらく、調査を行います。

⇒「InetAddress.getByName」が非同期である必要がありました。

広告 ID の申告が不完全です

これ、良く分かっていない。使用していないで申告しても、結局はじかれる。「さっぽろ周辺マップ ライト3」とかでは、使用していることにして登録していますが、今回のテスト的なプログラムでも必要なのでしょうか。⇒結局、SensorCastも広告IDを使う設定にしました(何か、いろいろやっているうちにそうなってしまったようです)