Androidのスマホをサイクルコンピュータにする その4 ログ開始の自動化 | のーてんきぶろぐ

のーてんきぶろぐ

綺麗な景色を探しに行ったり、ゆるーく楽しむぶろぐ in 京都。 自転車、カメラ、旅とか日々のことを書いてます。

androidのスマホをサイクルコンピュータにする記事
 → その1 アプリの比較
 → その2 外部センサーやモニターとの連携
 → その3 自転車へのマウント方法
 → その4 ログ開始の自動化(本記事)


androidをサイコンにする記事の4回目は、アプリで計測を開始するまでの手間をなるべく省く方法についてまとめてみる。つまり、自転車で走り出す前に毎回アプリを起動して計測開始するという面倒なスマホ操作の手間をできるだけ省略することを目的としてみる。

IMG_4354



0. スマホをサイコン代わりにする際の手間


市販のお手軽なサイコン(サイクルコンピュータ)であれば、自転車で走りだせばただそれだけで勝手にサイコンが計測を始めてくれる。それに対してスマホをサイコン代わりにする場合は、いくつかの手順を踏む必要がある。具体的には以下の通り。

① スマホの電源ボタンを押す
② スマホのロックを解除する
③ GPSやBluetoothをオンにしたり、明るさの変更、スリープしないなどの設定変更をする
④ アプリを起動する
⑤ アプリ上で記録開始のボタンを押す

スマホをしょっちゅう触っていれば①や②の手順は気にならないかもしれないし、設定でずっとONにしていれば③の手順は必要ない。けど、お手軽サイコンに慣れてきた身からすると、自転車に乗るたびに毎回いちいち何らかのアクションをするのは面倒臭く感じる。

そんなわけで、この手順を少しでも自動化する方法を書いてみる。



1. 自動化その1 ロック解除の手間を回避する


これにより上記の②の動作を省略できる。

まず、Android 5.0(Lollipop)以降ではスマートロックというものを使ってロック解除時の手間を減らすことができる。
スマートロックというのは、例えば自宅などの予め設定した特定の場所にいるとき、ロック解除の動作を回避することができるもの。つまり、パスワードやパターン入力をする必要がなくなる。
「特定の場所にいる」という条件だけでなく、「特定のBluetooth機器との接続中」(スマートウォッチとの接続中など)や、「特定のNFCタグを読み込んだ」ことなどを条件とすることもできる。

とはいえ、Android 5.0ではスワイプの動作だけはどうしても必要で、その手間は省けない(パターンやパスワードを入力する手間は省略可)。それとちなみに、XperiaではAndroid 4.4.4でも特定のBluetooth機器と接続時にロック画面を表示しない設定が可能できる。

最近の機種では指紋認証で簡単にロック解除できるようになってきてるから、ロック解除の手間はこれからあまり気にする必要がないかも。



2. 自動化その2 NFCタグの活用


これにより一般的には上記の③④の動作を省略できる。
ただ、最後に書くように、②の動作も⑤の動作も一定の要件を満たせば省略できる。

(1) 活用方法と注意点

スマホをNFCタグにかざすだけで、特定のアプリを起動し、合わせて設定を変更するなんてことができる。
設定の変更は、BluetoothをONにしたり、明るさを変更したり、スリープしないようにしたり…様々な設定変更を一度にできる。ただ、2点ほど注意点がある。

1点目は、GPSのオン・オフは自動化できないこと。
※Root化(裏技的なもの)をすればできるらしいけど、危険性もあるためここでは考えない。

2点目は、NFCタグは画面消灯時には反応しないこと。
画面さえ点灯した状態(ロックも解除してる必要あり?)であればNFCは反応してくれるけど、一手間必要なのがちょっと惜しい。


(2) NFCタグへの書き込み方法

NFCタグへの書き込みはNFC Writer by Tagstandというアプリが使いやすかった。
他にはNFCタグマティックなんかでもいいかも。


(3) 備忘録

自動化アプリLlamaでNFCタグを利用する際には、予めNFCタグに以下の内容をウェブアドレスとして書き込んでおくと使用できる。その際には(2)で挙げたライターアプリを使うと上手くいった。
 → llamaloc://llama.location.profiles/nfc
そして、Llamaの「条件」 → 「NFCタグ検知を押した状態」でタグを読み取り。名前入力画面になる。



3. 自動化その3 現状Stravaのアプリでのみ通用する方法


これにより上記の⑤の動作を省略できる。

Stravaのアプリでは、ショートカットやandroidインテントっていうものが準備されてるからか、記録の開始自体を自動化することができる。

(1) アプリを使う方法

以下のアプリを使って、スマホのホーム画面上にアプリのアイコンを表示しておけば、後はアイコンを押すだけでStravaの記録を開始してくれる。このアプリはStravaの計測開始を簡単にするための専用のアプリ。
One Tap Record for Strava


(2) 自動化アプリでandroidインテントを使う方法

専用のアプリを使わなくてもTaskerLlamaのような自動化アプリがあればandroidインテントを使うこともできる。Llamaでの設定方法は以下。

Llamaでの動作は「Androidインテント」にして、
「サンプル」欄は「Androidインテントの自作」
「送信モード」欄は「アクティビティ開始」
「動作」欄は「android.intent.action.RUN」
「データ」欄には、
 ・記録開始なら「http://strava.com/nfc/record」
 ・記録停止&アップロードなら「http://strava.com/nfc/record/stop」
 ・記録開始/終了の切り替えトグルにするなら「http://strava.com/nfc/record/toggle」

ちなみに、参考にしたのはここ
このページにはTaskerでの設定方法が載ってて、それを参考にLhamaでの設定方法に合わせたのが上記のもの。



4. まとめ


何度も出てきたけど、NFCタグをうまく利用すればそれだけで手順②③④⑤を省略できる。
③④はほとんどのスマホで設定さえすれば省略できるはずやけど、②を省略するにはAndroid5.0以降であることが条件、⑤を省略するにはStravaのアプリを使用することが条件となる。

具体的な手順を挙げておくと、例えば、自転車に取り付けたスマホホルダーにNFCタグを貼っておけば、
1.スマホの電源ボタンを押す
2.スマホをホルダーに載せる(NFCタグに反応)
3.スワイプする
4.ログ開始ボタンを押す
これだけで、NFCタグの反応によって、ロック画面での暗証番号やパターン入力を回避して(②)、Bluetoothをオンにしたり明るさを変更するなどの設定変更ができ(③)、特定のアプリを起動させる(④)ことができる。そのうえ、Stravaのアプリを使う場合には、ログ開始ボタンを押す必要(⑤)さえなくなる。

使用するスマホホルダーへのNFCタグ貼り付けとか、使用したNFCタグとかについては前回の分参照。
Androidのスマホをサイクルコンピュータにする その3 自転車へのマウント方法


ちなみに、NFCタグを使ってナビアプリを自動で起動させることもできる。

IMG_4355

以上で終わり。