U.F.O. SAを独自パターンでコントロールするアプリVer.6.51

Android5.0以上のBLE対応機種をお持ちの方でUfoSaCtrlが動作しなかった方へ、大変ご迷惑お掛けしました、そして、お待たせ致しました。
この度、格安のローエンドAndroid6.0機を入手しましてAndroid6.0でも動作するように修正しました。

このアプリの対象となる製品はこちらです。

ただ、Android5.x系の実機をすっ飛ばしてしまいましたので、もし、動かないよ~という方がいらっしゃいましたら、現象を教えていただけると幸いです。

改修のポイント

今回は機能には変更はありません。
特にAndroid4.x系の方には不要な改修を含めていますので、Android4.x系の方がバージョンアップする必要は全くございません。(バージョンアップしても害はありません。)

Android5.0以上の場合、Bluetooth接続の安定性が増したかもしれませんので、バージョンアップを試す価値はあるかもしれません。
(5.0以上でしか動作しない新しいAPIを組み込みました。4.x系は従来の動作のままです。)

Android6.0以上ではOS側の方でちょっと面倒臭い変更がされています。
それは、
位置情報をONにしていないとBLEのスキャンができない
という制限です。
これにまともに対応しようとすると、Android4.x系5.x系でも位置情報ONを必須とするようになってしまうため、アプリそのものをバージョンで別のものにしようかどうか迷いました。
だいたい、U.F.O. SAをいじりたいだけの野良アプリで、位置情報まで使う(アプリ内では使っていません。あくまでOS側の制限として位置情報を使えるようにしていないとBLE機器の探索ができないというだけです。)なんて作者本人でも気味が悪いです。
かといって、Androidのバージョンでapkを分けるのもなぁ……
そこで今回はちょっと変則的な対処をしました。

アプリそのものを5.x時代の古いものとしてコンパイルし直したのです。
そうすると、4.x系5.x系の方は従来通り使用でき、6.0以上の方は位置情報をONに(もちろんBluetoothもON)しておいてもらえれば動作するようになります。
U.F.O. SAを見つけて接続するまでの間、位置情報がONである必要がありますので、一旦接続できれば、位置情報をOFFにしても大丈夫です。(ただ、また繋ぎ直すときにONする必要がありますけど)

これが6.0以上対応アプリとしてコンパイルすると、アプリに必要な権限として「位置情報の取得」を追記しなければいけなくなります。これでは4.x系5.x系には単純に利便性悪化となってしまいます。
なので、今回はこのような対処にしました。

6.0以上の方で位置情報をOFFにしたままアプリを起動すると変なエラーメッセージが出てきて画面が消えて(バックグラウンドに行って)しまいます。その場合、裏で接続できないまま動き続けますので、画面を呼び出して終了させるか、強制終了する必要が出てきます。
この動きは非常に汚い、醜いものではありますが、元々が単純にU.F.O. SAをコントロールしたいだけ、ということで、ここでの丁寧な対応はとりあえずしないことにしました。
ご了承のほど、宜しくお願い致します。

機能や注意点などは過去記事を参照願います。
U.F.O. SAを独自パターンでコントロールするアプリVer.6
U.F.O. SAを独自パターンでコントロールするアプリVer.5
U.F.O. SAを独自パターンでコントロールするアプリVer.4
U.F.O. SAをAndroidから独自のランダムパターンでコントロールするアプリ

ダウンロードファイル

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

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

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

ブログに無理矢理載せている都合上、ちょっと特殊なダウンロード形式にしているので、Androidの標準ブラウザではダウンロードに失敗するかもしれません。Chromeなら大丈夫みたい。ブラウザをある程度選んでしまうようです。ご了承ください。

最後に

アダルドグッズや同人コンテンツなどをご購入の際にはこのサイトのリンクを踏んでから購入していただけると、いくばくかの紹介料をいただけるので筆者が大変助かります。
このアプリや筆者の作成コンテンツが役に立ったとか面白かったとか、ありましたら応援していただけると幸いです。

このアプリの対象となる製品はこちらです。

2016-11-02

コメント

動作確認 チクニー初級 [2016-11-03 22:02]

Android6.0にて動作確認いたしました。
ただ私の使用しているNexus5では位置情報をONにせずとも即認識、接続しましたよ^^

早急な対応、そして素晴らしいアプリをありがとうございます。
これからも長らく使用させていただきたいと思います^^

Re: 動作確認 山牧田 湧進 [2016-11-03 22:13]

動作報告ありがとうございます!

位置情報(GPS)ONにしなくてもイケましたか。
うちの\9,590で購入したHOMTOM HT17Proでは駄目なんですよ。
スキャンの輪っかがクルクル回りっぱなしで、位置情報(現在地って書かれている場合もあり)をONにした瞬間に接続できます。
ググっても、Android6.0からは位置情報の権限が必要になったよ、っていうことでしたもので。

こうして、他の機種でも動くことが分かるとホッとします。
ありがとうございました。m(__)m
Let's enjoy U.F.O. SA!

管理人のみ閲覧できます  [2016-11-20 04:12]

このコメントは管理人のみ閲覧できます

Re: 動作報告 山牧田 湧進 [2016-11-20 10:54]

動作報告ありがとうございました!

A10サイクロンSAでも無事動作するようで良かったです。
位置情報OFFでも大丈夫な機種って結構あるんですね。
ググった限りだとAndroid6以上は一律で位置情報ONが必要になったのかと思いきや。うちのもONにしないとU.F.O. SAを見つけてくれないし。

いずれにしろ良かったです。ありがとうございましたm(__)m

動作報告続き 7743 [2016-11-20 15:04]

調べましたので報告します。
targetSdkVersionが23以降に設定されると6.0以降で追加された機能の、高精度位置情報の取得にBluetoothを使用する機能が使える部分が関係し、スキャン時に位置情報無効になっていると例外処理が走るのが原因のようです。
ソースコード上はペアリングを事前に行うと回避出来そうな感じですが、高精度位置情報とかこのアプリには関係無いのでtargetSdkVersionを下げる対応がベストのようです。

Re: 動作報告続き 山牧田 湧進 [2016-11-20 15:13]

詳細な情報ありがとうございます!

当方でもそのような対応がベストかなと思い、今回の改修でtargetSdkVersionを22に下げています。
ですが、うちのHT17Proくん(Android6.0)では位置情報をONにしないとU.F.O. SAを掴んでくれません(´;ω;`)
ONにした瞬間掴んで、それからはOFFにしても大丈夫なんですけどね。

ところで、実は動作指定のテキスト入力画面で、IMEの表示に合わせてリサイズするという指定をずっと忘れたままになっていて、それだけのためにバージョン上げるのもどうかと思ったり……

返信 7743 [2016-11-20 15:40]

ソースは更新しておいて、次回何かのアップデート時で良いと思います。パターンの保存、読込に対応していたら嬉しいですが、そのためにストレージ権限を付けたくなかったのでは、とお察しします。コピペでも思ったほど手間ではなかったので。
targetSdkVersionを下げて駄目な端末があるのですね。設定=>位置情報=>スキャン=>Bluetoothのスキャンを変えたり、高精度位置情報を無効にしてみては如何でしょう。
改善するかもしれません。

Re: 返信 山牧田 湧進 [2016-11-20 18:48]

高精度でなくても位置情報がONになってさえすれば接続できるのですが、OFFだと駄目で、ONにするときは自動で高精度になってしまうので、いずれにしろ最初の接続時のみONにしないといけないみたいです。

ちなみに、私がこのアプリを開発しようとしたモチベーションって、「チクニー中にパターン変えたりするの面倒臭い」っていうズボラな理由でして、「いろんなパターンを試したい」ではなかったんですね。(^^ゞ
ほら、チクニーの最中にどのパターンが良いかな、なんて考え出すと気が散っちゃうじゃないですか。
それで、「手放しで放置できるパターンを作りたい」、で作ったんですね。
なので、作者のくせして、Compositeの強さ1でしか使ってないんですよ。(^^ゞ

動作指定の機能は、U.F.O. SAをコントロールするエンジンが完成して、ふと、このエンジンに乗っかる形であれば物凄く簡単に機能追加ができるんじゃないの? って思って、本当に結構簡単に追加した機能なんですよ。それまでの苦労と比べると記憶が無いくらいに。(^^ゞ
んで、編集機能とかまるで無いただのテキストエリアなので、拘るなら他のエディタで作成したやつをコピペするって形になるだろうな、と思ったので。確かに、野良アプリに余計な権限付けさせたくないですしね。
この辺りは機能追加し始めると泥沼でキリが無くなりそうなので、今のところ余り踏み込まなくても良いかなとは思っています。

返信 7743 [2016-11-20 22:10]

端末固有のトラブルみたいですね、改善出来なかったようて残念です。
私がパターンを入れ替える理由は、用途別に変えているからですね。3個だと足りないので。
例えば、U.F.O.まったりチクニー用、U.F.O.とeuphoの競演(ドライ)用、Cyclone単体用、Cycloneドライ用、Cyclone亀さん責め用などですね。
なので、6パターンくらい設定出来てユーザー定義時のボタン名称が変えられたら私が行っているコピペはしなくて良くなります。
ほぼ完成されたアプリなので、複数台ペアリングみたいな仕様上トリッキーな(無茶な)要望を除けば他に思い付く事が無いですね。
次回があればご検討下さい。
最後にコメント欄をチャット化してしまい申し訳ございません。こんなに書くつもりでは無かったのですが、丁寧なご返信が毎回あるので気づいたらこの状態に。
これで最後にします。orz

Re: 返信 山牧田 湧進 [2016-11-20 22:20]

なるほど、上級者さんですね。ためになります。

確かに今以上の機能向上をさせようとするとパターン数追加対応とか複数台対応とかはかなり優先順位の高いものになりそうですね。

なるほどな情報やご意見をたくさんいただけましたので、たいへんありがたかったです。
また何かありましたらよろしくお願いします。m(__)m

この記事のタグ

U.F.O.

SA

アプリ

制御

自作