ヒロエルモノヲヒロウ日記

思いついたときが書き時

評判の悪いモバイルSuicaのウィジェットをどうにかしてみる

モバイルSuica使ってますか?

 

f:id:gadgetterdog:20210406131219p:plain

 

毎回唐突な呼びかけで始まります。

 

使ってますよ、もちろん。

 

 

私は徒歩通勤なのでほとんど電車には乗らないわけですが。

 

 

そんな私ですが、モバイルSuica一つあればキャッシュレス決済はだいたいOKだと思っているのでめっちゃ重宝しています。

 

決済自体も速いし

 

 

 

変な決済音もしないので。

 

 

 

シンプルが一番。

 

そのモバイルSuicaですが、3月にアプリが大幅にリニューアルしました。

ガラケー向けの対応を終了したので、スマホに最適化するべく作り直した感じみたいですね。

 

f:id:gadgetterdog:20210406131215p:plain

 

 

まあ評判が悪いこと悪いこと。

 

 

 

確かに従来はスマホのアプリにも関わらず、一皮むくとUIがガラケーのサイトそのものみたいな状態だったのでスマホのサービスとして生まれ変わらせるというのはわかるんですけど、まあ一つ一つの挙動が遅くなって実用上ちょっと問題なんじゃないかってレベルですよ。

 

今までは残高確認用のウィジェットをタップするだけですぐにスイカが割れて残高が表示されていたのに、新しいウィジェットだとスイカが割れるアニメが追加されて、

 

ペンギンをタップしてから…

f:id:gadgetterdog:20210406131018p:plain

 

 

しばらく何も起こりません。

 

 

3~4秒くらいしてイカがジワリと割れ始めました。

f:id:gadgetterdog:20210406131024p:plain
(ペンギンも驚いています)

 

 

その時点で「遅っせーなー」と思うわけですが、さらにここから数秒間なんの変化も見られません。

 

 

タップから実に7~8秒くらいして、ようやくスイカの中から残高がゆっくりとあらわれます。

f:id:gadgetterdog:20210406131028p:plain



この数字もまたオードリーの春日かってくらいゆっくり出てくるわけですよ。

 

 

しかも出てきた文字が今までより小さくなってて、いろいろと「進行」しているこのくらいの年になるとまあ見づらいこと見づらいこと。

 

たかが数秒ではありますが、アプリを起動することなく残高をすばやく確認できるというウィジェットの利便性」が完全に死んでるわけです

 

まだ数秒かかっても出てくるならマシな方で、完全に無反応を貫かれるときも多々あります。

 

そうなると一旦ウィジェットを削除してからまた再配置しなおすとかで解決します。

 うん、意味無いな。

 

 

見た目的には「アニメが追加されたから遅い」ように見えますけど、なんとなく

 

 

「そもそも残高の取得に時間がかかるのを紛らすためにアニメで間を持たせようとしてる」

 

 

ってことなんじゃないかとは思っています。

 いや、紛れてねぇし。

 

 

どっちにしても非常に遅いには違いないんですけど。

 

 

 

むしろアニメ処理のせいで遅いならその処理をやめれば良いだけなので話が早いのですが、今のところアニメ処理が無くなる気配は無さそうなので根本的な問題っぽいですね。

 

 

 

場合によってはアプリを起動した方が速かったりすることもあるんですけど、そのアプリ本体も起動にものすごい時間がかかる場合があって「とりあえず残高を知りたい」という要望に見合わないレベルのストレスを感じることになります。

 

 

 

 

で、ここから本題なんですが、この実用性が著しく下がったモバイルSuicaの残高確認ウィジェットを使わずに、サクッと残高を確認する方法を追求してみることにします。

 

 

モバイルSuicaアプリは、既存の「おサイフケータイ」アプリと連動しています。

まあそれがどういう話なのかはよくわかりませんが、「おサイフケータイ」アプリの方の設定で「かざした時の通知設定」をオンにすると、モバイルSuicaを使用して電車に乗ったり買い物をしたりしたときに、通知として決済内容が表示されるという機能があります。

 

f:id:gadgetterdog:20210406131003p:plain

 

それを有効にしておけば使うたびに更新された情報が通知されるので、その通知を残しておけばいつでも残高を確認することが出来ます。

 

電車に乗った時も、

f:id:gadgetterdog:20210406131011p:plain

 

買い物をした時も

f:id:gadgetterdog:20210406131008p:plain

 

改札でオートチャージされた時も

f:id:gadgetterdog:20210406131015p:plain

 

このように、決済内容と残高が通知されるので、これを見れば確かに大概の用は足ります。

 

ただ、その通知をずっと通知エリアに残しておくのもなんか邪魔だったり、確認しようと思ったらすでに通知を消してしまっていたりとかもありそうです。

 

あれはあくまでも「今決済された内容」をその時」に教えてくれる機能ということですね。

 

そこで、そのおサイフケータイ」アプリからの通知を利用して、「残高確認ウィジェット的な何か」を作ることに成功したので軽くご紹介したいと思います。

 

 

そんなことが果たして出来るのかと思われるでしょうが、「的な何か」だったら非常に簡単に作れます。

 

これを使います。

  f:id:gadgetterdog:20191119152337j:plain

Google Play で手に入れよう

MacroDroid - デバイス自動化 - Google Play のアプリ

  

 

もうおなじみのやつです。

 

 

これが無いと生きていけないレベルで重宝しています。

 

やることは簡単です。

 

手順を簡単に説明します。

 

1) 「MacroDroid」で文字列用の変数を一つ作成します

 

2) 新規マクロを作成し、「おサイフケータイ」の通知表示を「トリガー」にします

 

3) 「アクション」で、通知の内容を先ほど作成した変数に入れるようにします

 

4) このマクロに名前をカテゴリを設定して保存します

 

5) もう一つ新規マクロを作成し、「ショートカットで起動」を「トリガー」にします

 

6) 「アクション」で、「通知」から「ダイアログ」もしくは「ポップアップ」の表示を選択します

 

7) 通知内容の部分に、先ほど通知内容を入れた変数を指定します

 

8) このマクロにも名前をカテゴリを設定して保存します

 

9) ホーム画面のウィジェット追加で、「MacroDroidショートカット」を選択します

 

10) ショートカットで呼び出すマクロとして、先ほど2つめに作った「通知を表示するマクロ」を指定します

 

準備はこれでOKです。

 

もし、「おサイフケータイ」に複数の電子マネーを登録して使用している人は、通知のタイトルを利用してモバイルSuicaかどうか」の判定を入れればよいと思います。

 

それでは使ってみましょう。

まずは「おサイフケータイ」の通知が来ないと始まらないので、街に出て電車に乗るなり買い物するなりして、モバイルSuicaによる決済」を発生させてください。

 

おサイフケータイ」の設定がされていれば、決済がされた時点で決済内容と残高に関する通知が来ます。

来たらもうその通知は消してしまってOKです。

 

先ほどホーム画面に作成した「MacroDroid」のショートカットをタップしてみましょう。

 

 

瞬時に先ほどの「おサイフケータイ」アプリからの通知の内容が表示されるかと思います。

 

こうしておけば、「おサイフケータイ」アプリの通知を消さずに残しておけばそれを見れば残高がわかりますし、通知を消してしまってもホーム画面のショートカットですぐに通知を呼び出すことが出来ます。

 

残高を知りたいだけだったら、ウィジェットよりこの方法の方が圧倒的に速いです。

 

「数秒待って出るか出ないか」だったものが「瞬時に表示」なので、比較になりません。

 

 

この方法の問題点としては、「かざす」形の決済は運賃、買い物に加えてオートチャージまで取得できるのでそれだけなら「最新の残高」の情報が取得できるのですが、「アプリからの手動でのチャージ」に関しては「かざす」行為が無いので通知が発生しません。

なので手動でチャージを行った場合は「実際の残高」と「ショートカットをタップして表示される残高」が違うことになります。

 

とはいえ、「残高を知りたい時」というのは基本的に「今の残高で足りるかどうかを知りたいわけで、「足りなければその時点でチャージ」なわけじゃないですか。

で、「残高を確認」した後に「チャージ」と来たら、おそらく相当高い確率ですぐに「決済」が発生すると思うんですよ。

かざして決済が行われれば「おサイフケータイ」からの通知が発生するので、その時点で保持する残高の情報も正しくなるはずです。

 

 

「今すぐは使わないけれど、とりあえずチャージしておこう」

 

 

というケースくらいですかね、問題になりそうなのは。

その場合も何も気にせず使ってしまえば情報は正しくなりますし、チャージしたことを忘れて残高を確認したときは「実際より低い金額」が表示されるはずなので、チャージが必要だと思ったらアプリを立ち上げるわけでその時点でチャージされてることに気がつくと思うんですよ。

あとは使えば良いだけ。

 

 

 

まあそういう諸々の問題に対応する方法として、「MacroDroid」の「文字列操作」の機能を使って通知から残高の数字を抽出して保持しておいて、チャージしたときに金額を調整できるようにするという方法があります。

 

 

 

というか、私はそこまでやりました。

 

 

 

「チャージ金額を入力したら残高に加算されるマクロ」を別途用意して、手動でチャージを行った(そしてすぐに使わない)場合にそれを利用して情報を更新しておくという感じですね。

 

 

こんな感じで表示させています。

 

f:id:gadgetterdog:20210406131032p:plain

 

これがあればもうモバイルSuicaウィジェットはほぼ必要なくなります。

ちなみに私は決済の時の「おサイフケータイ」の通知も、情報を取得したらマクロの中で消すようにしています。

この仕掛けがちゃんと動けば必要ないので。

 

 

また相変わらずインチキくさくて回りくどい方法ではありますが、「おサイフケータイ」や「モバイルSuica」の仕組み的な知識や情報がほぼ不要で、(最低限の挙動だけなら)「MacroDroid」側でのプログラミング的な知識も最小限ですむので、「モバイルSuica」の新しい残高確認ウィジェットの挙動に辟易している人はチャレンジしてみてはいかがでしょうか。