概要
Androidデバイスの現在位置を変更するアプリケーションのサンプルです。
(Androidエミュレータの場合には Android Studioから変更できますが、実機でも欲しかった)
- このアプリケーションは Bluetooth を使用し、位置情報を受け付けます。受信した位置情報へ現在位置を変更します。
- 位置情報の送信はデスクトップアプリケーションやAndroidアプリケーションでもいいのですが、ここでは
Web Bluetooth API
を使用してブラウザから行います。 -
Google Maps API
を使用しています。
※ 最後の2点については試してみたかっただけです。
※ Bluetooth を使用したのは adb 用に USB を空けておきたかったからなのですが、wireless接続ができることを忘れてました..
リポジトリ
構成
Android アプリケーション
ACCESS_MOCK_LOCATION
パーミッションを付加。開発者設定から「仮の現在地情報アプリを選択」に本アプリを選択する必要がある。
BLE ペリフェラル。BLE セントラルから位置情報を受信する。
位置情報は、緯度、経度、高度、水平精度。
受信した位置情報を基にして、1秒毎に LocationManager.setTestProviderLocation
を行う。
web ページ
BLE セントラル。BLE ペリフェラルへ位置情報を送信する。
マップをダブルクリックするとクリックした位置の位置情報を送信する。
動作の様子
logcat に Google Play Services Location API
から取得した位置情報を出力しています。
Androidデバイスで Google Mapアプリを起動していれば、位置情報が変わることを確認できると思います。
参考
以下のページを参考にしました。
Google Map 以外は、掲載されているソースコードそのままだったりします。
(そのままで動作してしまったので😅)
ありがとうございます。
感想
Web Bluetooth API
はまだ experimental だと思いますが、ブラウザからAndroidデバイスと通信できることはおもしろい体験でした。
追記
BLEをやめて、Androidデバイス側でwebサーバーを立てるようにしました。
位置情報の変更は web api で提供しています。
curl等を使用して、PCからAndroidデバイスへリクエストすることで変更できます。