前回作成したPanicARとUnlimited Handの連動企画のその2になります。
今回は前回の拡張として、地図とARとUnlimited Handの連動になります。

アプリの内容としては、
  • 現在地付近に一匹の「うなぎ」を表示する
  • 背景を「com.google.android.gms.maps.MapFragment」(地図上の場所は現在地付近)、またはカメラによる現在地の表示にする(どちらか一方を表示)
  • ランダムな時間毎に「うなぎ」 が放電状態になる
  • 放電状態の「うなぎ」にタッチするとUnlimited Handから電気刺激が発生する(Unlimited Handがない場合はスマホが震える)
となります。画面は以下のような感じになります。
※ 右下のスイッチで地図とARを切り替えることができます。


察しの良い方はお気づきと思いますが、某アプリをリスペクトしたものとなります。
原理的には前回のものを拡張し、MapFragmentとAROnCameraFragmentを重ね、スイッチにより表示するViewを切り替える方式をとりました。

ソースはこちら(Tag: v1.2)に公開しています。
※ サブモジュールはそれぞれ、以下の場所に公開しています。
  • Unlimited Handの制御をサポートするモジュール => こちら
  • Bluetoothの制御をサポートするモジュール => こちら
  • 細々としたラッパーメソッドなど => こちら 

主要な構成は以下のようになります。
  1. jp.eq_inc.aranduh.ARandUHApplication
    com.dopanic.panicarkit.lib.PARApplicationを継承したApplicationインスタンス。「public String setApiKey()」をオーバーライドしたのみ。ライセンスを購入したら、こちらのメソッドを書き換えて、その値を返却する。
  2. jp.eq_inc.aranduh.AROnMapActivity
    android.support.v7.app.AppCompatActivityを継承したActivityインスタンス。このActivityの起動時、カメラと位置情報に対するランタイムパーミッションの確認を実施する。また表示するFragmentの管理を行う。
  3. jp.eq_inc.aranduh.fragment.AROnCameraFragment
    com.dopanic.panicarkit.lib.PARFragmentを継承したFragmentインスタンス。com.dopanic.panicarkit.lib.PARCameraViewやcom.dopanic.panicarkit.lib.PARViewやcom.dopanic.panicarkit.lib.PARRadarViewなどのインスタンスの管理や、うなぎの制御(表示位置の決定や通常状態・放電状態の切り替え)などを行っている。
  4. jp.eq_inc.aranduh.poi.POIImageView
    com.dopanic.panicarkit.lib.PARPoiを継承したPARPoiインスタンス。処理自体は指定されたBitmapやDrawableリソースを表示しているのみ。 
次からは、Unlimited Handで取得できるセンサーの値について確認してみます。

コメントの投稿