0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Android デバイスの現在地情報を変更するアプリケーションサンプル

Last updated at Posted at 2020-06-11

概要

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 から取得した位置情報を出力しています。

fake_location_privider_demo_.gif

Androidデバイスで Google Mapアプリを起動していれば、位置情報が変わることを確認できると思います。

参考

以下のページを参考にしました。

Google Map 以外は、掲載されているソースコードそのままだったりします。
(そのままで動作してしまったので😅)

ありがとうございます。

感想

Web Bluetooth API はまだ experimental だと思いますが、ブラウザからAndroidデバイスと通信できることはおもしろい体験でした。

追記

BLEをやめて、Androidデバイス側でwebサーバーを立てるようにしました。

位置情報の変更は web api で提供しています。

curl等を使用して、PCからAndroidデバイスへリクエストすることで変更できます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?