UfoCtrlおよびUfoCtrlTester Ver4.00のAndroid15実機確認OK その他

前回のVer4.00の記事でこそっと記述していましたが、筆者ようやくAndroid15(最新の16ではないです)のスマホを入手しまして、早速ですが拙作アプリの『UfoCtrl Ver4.00 U.F.O. TW SA A10サイクロンSA (+PLUSプラス) バッハスマート ROCKET+1D DIYグッズコントローラー等BLE制御アプリ』および『UfoCtrlTester Ver4.00 U.F.O. TW等実際のグッズ接続無しでUfoCtrlの制御状態を確認出来るアプリ』の動作を実機確認致しました。
実機はPOCO M7 Pro 5Gです。このスマホのレビューについては筆者の別サイトの記事『Xiaomi POCO M7 Pro 5G - Do it!』をご参照ください。

結果は何の問題も無く、普通に使用出来ました。

ただ、この機種、近接センサーが特殊でして、近接センサーそのものは実装していなく他のデバイスで擬似的に近接を検知するようになっています。
この仕組みは筆者のそれまでの最新スマホであったXiaomi Redmi 12C(レビューは筆者の別サイトの記事『Xiaomi Redmi 12C - Do it!』を参照)と同じなのですが、Redmi 12Cでは恐らくフロントカメラだけを用いて近接を検知していたのに対してPOCO M7 Pro 5Gではフロントカメラだけでなく、加速度計なのかジャイロスコープなのか分かりませんがスマホの動きも見ているみたいで、フロントカメラを覆い隠すだけでなくて同時にスマホを少し揺らしてあげると近接を検知するようです。
ですので、もし似たような疑似近接センサー構成のスマホ等で拙作アプリの近接センサースイッチ機能を使用していて反応が鈍いなあと感じられる場合は、フロントカメラを覆うときに同時に少しスマホを動かしてあげてみてください。
要はおしとやかに手を触れずに覆おうとせずにそのまま手をスマホにぶつけてしまえ、って感じですかね。

2025-12-04追記:
POCO M7 Pro 5Gの近接センサー周りの挙動についてちょっと面倒な動作を確認しましたので、ここに防備録として記しておきます。
ロック画面があるとき(指紋認証等設定しているとき)の話ですが、画面オフにしたときに近接センサーがほぼ反応しません。
これはUfoCtrlアプリ上にある画面オフボタンをタップしても、電源ボタンを押しても、一定時間放置して画面オフになった場合でも、いずれの場合でもほぼ反応しなくなります。
ただ、その後一旦電源ボタンを押してロック画面を表示させてもう一回電源ボタンを押して画面オフにしたときは近接センサーは正常に反応します。
しかし、アプリの設定でUfoCtrlをロック画面に表示することを許可していると、上記のようにロック画面を表示させたときにUfoCtrlアプリの画面が表示されて最初の状態に戻ってしまいます。つまり、そこから画面オフにしても近接センサーが反応しないというループに陥ってしまいます。
つまり、POCO M7 Pro 5Gで画面オフにしながら近接センサーを使用したい場合はUfoCtrlをロック画面に表示する許可を与えずに、画面をオフにした後、一旦ロック画面を表示させてまた画面オフにする必要があります。
ちなみに、画面ダブルタップで画面オンオフするように設定していてもUfoCtrlアプリが起動中はダブルタップでの画面オンオフが出来なくなっています。
色々と動作が変ですが、これはUfoCtrlアプリが画面オフ状態でも使用出来るようにするためにフォアグランドサービスを採用している影響かと思われます。(あとHyperOSが変)
なお、指紋認証など一切設定せずに画面ロックを使用しないように設定している場合は近接センサーは画面オフにしても全く正常に反応します。
筆者は家の外に持ち出さない機体は全て画面ロックを使用しないように設定しているのでこういった苦労は画面ロックを設定した機体に限られるのですが、もし近接センサーを活用したいが画面ロックとの兼ね合いでどうしても便利に使えないという場合は中古の安いスマホでも購入頂いて画面ロック無しで運用されるのが便利かと思います。
画面ロック無しでの画面オフ+近接センサーでグッズオンオフは非常に楽な世界ですので。
:追記終わり

ちなみに前回言及しておりました開発ツールAndroidStudioのアップデートに伴う古いAndroidOSへの対応打ち切りの件なのですが、なんかですね、一連の問題が発生してから暫くはAndroidStudioのバージョンを問題が発生しないバージョンへと戻してそれで今回の『UfoCtrl Ver4.00 U.F.O. TW SA A10サイクロンSA (+PLUSプラス) バッハスマート ROCKET+1D DIYグッズコントローラー等BLE制御アプリ』『UfoCtrlTester Ver4.00 U.F.O. TW等実際のグッズ接続無しでUfoCtrlの制御状態を確認出来るアプリ』の改修作業を行っていたのですが、これらの公開作業まで行っている間にですね、どうやらAndroidStudioの最新バージョンにPatchが当たったらしく、古いAndroidに対応していてもプロジェクトの崩壊が起こらなくなりました。
ということで、当面は変わらずAndroid4.3以上対応ということで続けて行けそうです。お騒がせしました。
ただですね、筆者側の実機がですね、Covia FLEAZ F4 (CP-F03a 8G)というAndroid4.4の機種なのですが(レビューというほどでもないし写真もありませんが筆者の別サイトの記事『covia FLEAZ F4 (CP-F03a 8G) - Do it!』を参照)、成り行き上筆者はこのスマホを2台持っているのですが1台は早々に液晶がグズグズと壊れて行き、もう1台もバックライトが一部死滅していて部分的に画面表示がほとんど見えない領域が存在しています。さらにバッテリーは2つとも(この当時はバッテリーパック交換可能)ほんのり膨張していてほんの数十分で1桁%まで落ち、充電すれば(5V 0.5A 2.5Wという超低速充電で)ほんの数十分で100%になるという瀕死の状態ですので、いつまで実機確認出来るのやらといった状況でもあります。
もっとも、Androi4.x固有の処理は基本的にもう弄らない部分ではありますので、そうそう確認が必要になる部分でも無いのですが、問題は固有じゃないつもりでプログラム組んで動かないパターン(があるのか知らんけど)ですよね。
この辺りエミュレーターの動作も(AndroidOSバージョンが古いのは特に)かなり怪しいのでどのみちどこかでサポート出来なくなるタイミングは訪れてしまうかとは思います。

なお、じゃあAndroid5.0未満足切りみたいなことを言っていたCopilotさんて嘘吐いていたの? という話なのですが、あながち嘘は言っていなくて、確かにLibrary等で古いAndroidバージョンの足切りが始まっているケースがあり、もしそういうLibraryをアプリで使用しているようだと影響が出たかもしれません。
ところが、筆者はUfoSaCtrlからUfoSaCtrlPro、UfoSaCtrlDual、UfoSaCtrlTrip、UfoTwCtrlそして現在のUfoCtrlに至るまでの過程でLibraryからの脱却を図っており、現在はLibraryを使用しておりません。
ですので、Libraryによる古いAndroidバージョン足切りの影響は受けません。

まずもって筆者が変態なのですが、通常は多くのAndroidバージョンに楽に対応するためにLibraryを使用することが一般的かと思います。
新しいプログラム機能は古いAndroid機には搭載されていないため、一律で最新の状況に底上げ出来るようなLibraryを用いて楽に幅広い機種への対応を行おう、とこういう感じでしょうか。
筆者のアプリでもかつては◯◯CompatみたいなLibraryを使用していたのですが、結局Libraryを使用していてもAndroidバージョン毎に処理を分けて書かなければならない場面が発生して「これって意味あるの?」と思うようになり、特に筆者のアプリではLibraryの恩恵がそんなに無い割にアプリサイズを膨大にしていたためLibrary使用のメリットよりもデメリットの方が多いと判断してLibrary脱却の作業をしたのです。
その結果、一度は700KBを超えていたアプリサイズは当時よりも機能拡張を繰り返したにも関わらす現在は110KB台に収まっています。

画面のデザインが古臭いのも、筆者があまり最近のデザインが好きではないということもありますが、新しいデザインは古いAndroidOSには備わっていないので結局多くのサイズをプログラムに内包してインストールするしかなく、逆に古いデザインは最新のAndroidOSでも後方互換性のために残っていますので、アプリにデザインのためのLibraryを含める必要がありません。

唯一サイズ増になった要因としては、開発言語をJavaからKotlinに変更したことでしょうか。
この変更で当時は20KBくらい増えたかと思いますが、これはまだ筆者がKotlinで最適なプログラミングが出来ていない可能性も多々あります。

あと余談ですが、技術的興味からJetpackCompose化しようと画策していた時期もあったのですが、やはりアプリサイズが膨大になってしまうため、このアプリは古くて簡素でサイズの小さいアプリとして徹底して作成しています。

というわけで、まだ暫くは古いAndroidバージョンの切り捨てはしなくて済みそうではあるのですが、かと言って最新対応を怠るわけにも行きません。
近日中に最新のAndroidStudioにてTargetAPIを34→35(Android14→15)に上げたアプリを公開する予定でいます。(機能変更はありません)
TargetAPI35対応としましては画面の描画仕様が変わってしまったため、その対応が必要となります。
また、TargetAPI36(Android16)対応でもまた少なくとも画面描画仕様変更への対応が必要になりますが、他にも色々とあるかもしれませんし、実機確認出来ない状態で上げるのは問題があるので、筆者が実機でAndroid16の確認が出来るのをお待ちいただくことになります。
恐らくですが、今回購入したPOCO M7 Pro 5Gがそう遠くない時期にAndroid16へのアップグレードを配布してくれるかと思うのですが……?

2025-12-04 2025-12-02

この記事のタグ

U.F.O.

TW

SA

アプリ

制御

電動

自作

チクニー

開発