UfoCtrl Ver1.10 U.F.O. TW U.F.O. SA A10サイクロンSA (+PLUSプラス) バッハスマート ROCKET+1D 等BLE制御アプリ

ついにU.F.O. TWのコントロールも統合して、ほぼ全体を見直して最適化してアプリサイズもさらにコンパクトにまとめたUfoCtrl。
やりたいことは全てやりきったのでもう当面は改修することも無いなと思っていたのですが、直した方が良い箇所が結構出てきてしまったので直しました。

このアプリはBLE(Bluetooth Low Energy)通信機能を持つAndroid4.3(API18)以上の機器でU.F.O. TW、U.F.O. SA、A10サイクロンSA +PLUS(プラス)バッハスマートROCKET+1Dなどの+1D対応グッズをランダムコントロールしたり任意の固定パターンを登録して制御出来たりする野良アプリです。
また、上記以外の機器でも条件が合致する機器であれば接続情報を正しく設定に記述することで同様に制御できる可能性があります。

対象となるデバイスは以下になります。

なお、ROCKET2
ROCKET2
についても、
筆者が購入していないため動作するか不明ですが、販売サイトの画像を見た限りですとROCKET+1Dと同じ「ROCKET」というデバイス名を使用している可能性が高く、このアプリはデバイス名で接続機器を判別しているため「ROCKET」で認識できるかもしれません。(が確証も責任も持てませんのでその辺りは各ご自身の判断にてお願いいたします。)

改修内容

・より小さな画面でも使えるように
元々筆者が所持しているスマホで480x854ピクセルという小さな画面のもので表示しきれていたので気にしていなかったのですが、より小さな320x480ピクセルのスマホを入手する機会がありまして、実行してみると設定画面とか下の方が表示しきれなくて弄れない状況でした。
というわけで、Switchesの画面とモーター稼働積算計の画面を縦スクロールできるように改修しました。

なおメイン画面とSettings画面は元々全画面表示することを前提とした画面構成としているため変更しておりません。

表示を減らせば使えないこともありません。(^^ゞ

・通知からアプリを終了できるように
しました。

通知の下に「STOP」とか「■」とか機種によりけりですが表示される場合はそこをタップしていただくとUfoCtrlアプリを終了します。

・メディアボタン操作関連の精査
をしました。
筆者の知識不足で申し訳無いのですが、どうやらAndroid8以降の機種でメディアボタン(音楽再生関連のボタン)がまともに機能していなかった可能性がありました。
なんか実際に再生しているアプリにしかメディアボタン操作を伝達してくれないようなんですね。
なので、音楽再生アプリとかが入っている機種でUfoCtrlを動かしてもメディアボタン操作は音楽再生アプリの方にのみ伝達されてしまう状況だったようです。

今回の整理で実際に音楽再生するフリを導入しましたのでAndroid8以上でも機能するようになるかと思います。
ただし、ここでOSによる制限があることをお知らせします。
OS側で非常に面倒な制限がされているため、音楽再生時には「再生」ボタンの操作を受け付けません。「一時停止」「停止」は受け付けます。
逆に再生停止時には「一時停止」「停止」ボタンの操作を受け付けません。
そしてさらに、停止時には「ボリューム」ボタン操作を受け付けません。
マジで、素の操作データくれや!としか思えないのですが、そもそも操作したことをアプリに教えてくれないのでどうにもなりません。
多分Android7.1まではそんな制約無いので今まででも普通に使えていたかと思います。

これの何が問題かと言うと、筆者の所持しているBluetooth接続のイヤホンアダプタ。「送り」「戻し」「再生/一時停止」ボタンがあるのですが、この「再生/一時停止」ボタンが押すたびに「再生」と「一時停止」を交互に伝達してきます。
どちらにも反応するためには「再生」が押されたらアプリを音楽再生状態にして「一時停止」を押されたらアプリを音階一時停止状態にする必要がありますが、上記したとおり一時停止状態では「ボリューム」ボタンが効かなくなります。

困った結果、アプリでは常に音楽再生状態を維持することにしました。(実際に音楽を再生しているわけではありません)
お手持ちのデバイスでボタンを押しても反応したりしなかったりという場合は同じボタンでも押すたびに違う操作が発せられているせいであるかもしれません。ご了承ください。

また、今まではそもそもメディアボタンとか使わないよ、という方でもメディアボタン受信の準備をしてしまっていたのですが、今回「そもそも使用しない」という選択肢を設けることにしました。

「Mediaボタンを使う」のチェックを付けない場合はメディアボタン操作のための準備作業をアプリがしなくなります。
ただし、これは画面をオフにしているときやUfoCtrlアプリの画面が最前面に出ていないときの話です。画面がオンでアプリが最前面にあるときは特別な操作をしなくてもメディアボタンの操作も受け付けるように(AndroidOSの仕組みが)なっています。

・近接センサーも、使わないときはその準備もしないように
改めました。

余談なのですが、筆者はこのところUfoCtrlシリーズの開発を通して得た知見を活かしてアプリサイズの小さいAndroid便利アプリを幾つか開発しておりまして、その過程で逆にUfoCtrl側に不備があったことを発見するに至り、今回の改修に繋がりました。
それまでは「もう直すところも無いし新しいAndroidOSのバージョン対応だけだな」って本気で思っていたのにこの始末……。
リンク貼っても見てくれる人がいないというのは分かってはいるのですが10000PVくらい行けば1人くらいは見てくれる人もいるかもしれないと思うので一応リンク貼っておきますね。
GI(AndroidAppsのサイト。2024-09-09時点で6つのアプリを公開中。いずれもapkサイズ60KB以下)
なお、このページが10000PVに到達する日は来ないです(断言)。悲しいけれどこれが現実。

あ、ちなみに今回の見直しでさらに参照ライブラリを減らすことができましたのでさらにアプリサイズが縮小しまして、約108KBにまで小さくすることが出来ました。
実はもう参照しているライブラリが一つも無いので、これ以上サイズを小さくするのは困難でしょう。(アプリアイコンを簡素化すると100KB切るかどうかというところまでは攻めることが出来るでしょうが)

その他機能等はVer1.00の記事『UfoCtrl Ver1.00 U.F.O. TW U.F.O. SA A10サイクロンSA (+PLUSプラス) バッハスマート ROCKET+1D 等BLE制御アプリ』の解説をご参照ください。

ダウンロードファイル

勝手な再配布はしないでください。
また、このファイルのみへの直接リンクを貼ることもご遠慮ください。
特に、うちのサイトは弱小なので、検索で上位に表示されるサイトに勝手にコピーされると、盗まれたのとほぼ同じ状況に陥ります。
何かしらの問題が発覚して、こちらのサイトでファイルを差し替えても、それが皆さんの元には反映されなくなることにも繋がります。

諸事情によりアプリの無料配布を終了致しました。
今後は活動を支援してくださる方とのみ細細と共有していければと思います。

今後のUfoCtrlアプリ配布ページはこちらです。
UfoCtrl Ver1.10 (UfoCtrl開発活動支援プラン)

2024-09-09

この記事のタグ

U.F.O.

TW

SA

アプリ

制御

電動

自作

チクニー

開発