Brave ProをLEM14化する
駄目アルー。どうやってもRogbid Brave Pro の運用時間が安定しないアル。20時間程度から50時間程度まで、バッテリーの持ちが変わる変わる。
と言うことで、Rogbid Brave Pro にLEM14のROMをぶち込んでみた。両者は同一製品で載ってるファームウェアがすこーし違うだけなのだ。
やり方はfullandroidwatch.org で公開されているLEM14のROMをSP flash tool で手動アプデして上書きするだけ。注意点は、
- 時計側の開発者オプションからUSBデバックを許可。
- SP flash toolの取説を良く読むこと。途中で接続失敗すると文鎮化の可能性有るかもしれないので気をつけること。とくにpreloader。
- 文鎮化しても私は責任取りません。
使用したROMは以下のもの。2021年1月21日版だぎゃ。fullandroidwatchを検索すれば出てくる。
S10PRO_LEM_C15_EN_V1.7_20210121.zip
なんでこんなことするのか?
ハード的に同じ製品とはいえ、単純にLEM14のほうがサポートが厚いからです。今後予定されているbug fixでもBrave Pro は放置される可能性有りそうだったし、2021年1月のアプデなんざ来てないし。
なお、機能が増えたり電池の持ちが安定したりする、なんてことはなかった。
もうこうなりゃヤケだぜ
どうせ悪さしてるのはGoogle系のアプリなので、GmailもGoogleアシスタントもアンインストールしてみた。Googleアシスタントは実質、デフォルトのGoogleアプリが「OK Google」に対応してるので無くても変わらないとです。Gmailは、、無いと困るが…、、あとでOutlookでも試す。
ほぼ素のROMにAutomateとか入れただけの構成だす。2%/hr下回るが、さてこれが安定するのだろうか。
Bluetoothでの消費電力を低減させる
元ネタはfullandroidwatch.org。bluetoothの消費電力を押さえる方法として、以下のアプリの使用例があった。元のスレッドがどこかは忘れた…。試したらなかなか効果がありそうだったので、紹介。
https://discourse.fullandroidwatch.org/
Bluetooth Visibility Fix - Apps on Google Play
で、このアプリのやっていることは次の内容のようだ。
- 当然、1番や2番より3番のほうが消費電力は減る。
- 特定のアプリがスタートしたら3番にする、BTコネクションが切れたら2番にする、なんて動作が設定可能。
- で、通常はBT接続中も、別なBT デバイスからの接続に待機する為、3番にはならない。
- Watchdroidが接続したら3番にすることで、大幅なBTの消費電力の低減が見込める。ただし、もちろん、その後別なデバイスを追加で接続させることは出来ない、たぶん。試してない。
Rogbid Brave Pro (LEMFO LEM14)での実際の運用状況
まだ10時間程度ですが。
実効7時間で17%。2.5%/hrくらい。だいたい40~50時間の運用ですね。
元々が3% /hr以上消費してて頭が痛かったので、なかなかに節電効果がありそう。もう少し試して記事更新したい。
Bluetooth PANを活用する 逆方向Watchdroidその2
私はRogbid Brave Pro(LEMFO LEM14)をSIM無しBluetoothにて運用しています。今までBluetooth PANを経由してJoinを使い、親スマホを操作してきました。常時BT PANに接続してれば問題ないんですが、「画面がオンの時だけBT PANにつなぐ」運用をしていると、Joinの再接続が遅れることがまぁまぁある。
と言うことで逆方向Watchdroidを使ったらもう少し快適そうなのでやってみた。
なお、画面がオンのときだけBT PANに繋ぎにいくAutomateフローの例は↓のとおり。省電力効果が大きい。
フルAndroidスマートウォッチでの基礎的なAutomateの例 - diablo3cs’s diary
逆方向Watchdroidとは
逆方向WatchDroidによってBluetooth経由でスマホに通知を送る - diablo3cs’s diary
通常使用するのと逆にもWatchdroidを入れて、時計側から親スマホに通知を送る。この通知を受けて、親スマホのマクロ起動をする。
時計側WatchDroidPhoneの設定
ちっこい画面でめんどくさいですが、やるしかありません。
- アプリはAutomateのみを許可。
- Automateの自動フィルターはオフにする。
- 手動フィルターは適当に。
- 通知→ソーシャル通知→通知の動作→「画面をオンにする」を有効。オンの画面じゃないとTaskerといえども反応出来ない。
- 新しい通知スタイル、有効。
- 「通知に触れない場合、スマートウォッチでレコードを生成します」を無効。ただしこれはWatchdroidの通知画面を利用する場合で、システム上の通知notificationを利用する場合はオン。ややこしいな。
- 「タスクバーから通知を破棄すると~」有効。
- 音声通知を発行する、オフ。
- サイレントモードで振動する、有効。
- 振動時間ゼロ。これで通知が来た際に音も振動も鳴らない。
- 通知を表示する時間、最短の5秒。
- スポーツと心拍数、電池の同期をオフ。
親スマホでWatchdroidAssistantの通知をキャッチする by Tasker
watchdroidの最初に全画面表示される、システム上の通知notificationじゃない、通知画面をキャッチする。システム上の通知notificationをキャッチする場合は、通知が履歴に登録される場合の通知を利用するので、5秒待たなくてはいけない。
https://drive.google.com/file/d/1cypagbzS9wxBOF69LlhdISB-KCuh5WGE/view?usp=drivesdk
今回作製したTaskerのプロファイル。AutoInputプラグインを使用している。やっていることは、
- WatchdroidAssistantがforegroundに来たとき、
- それが通知ならタイトルを%titleofwd に、本文を%textofwdに格納する。title of watchdroid。
- %titleofwdが、「Hotspot On」ならばwifiテザリング開始。
- %titleofwdが、「Hotspot Off」ならばwifiテザリング終了。
- %titleofwdが、「Call via WD」ならば、%textofwdの番号に電話開始。
↓プロファイルのDescription
Profile: If WatchDroidAssistant is foreground, Then DO2 (15)
Restore: no
Event: App Changed [ Output Variables:* Package:com.lumaticsoft.watchdroidassistant ]
Enter: Anon (16)
A1: AutoInput UI Query [ Configuration:App Package: com.lumaticsoft.watchdroidassistant
Variables: titleofwd Timeout (Seconds):20 Continue Task After Error:On ]
A2: AutoInput UI Query [ Configuration:App Package: com.lumaticsoft.watchdroidassistant
Variables: textofwd Timeout (Seconds):20 ]
A3: If [ %titleofwd ~ Hotspot On ]
A4: WiFi Tether [ Set:On Keep Wi-Fi when turning on:Off ]
A5: Say [ Text:Hot spot on Engine:Voice:default:default Stream:3 Pitch:5 Speed:5 Respect Audio Focus:On Network:Off Continue Task Immediately:Off ]
A6: End If
A7: If [ %titleofwd ~ Hotspot Off ]
A8: WiFi Tether [ Set:Off Keep Wi-Fi when turning on:Off ]
A9: Say [ Text:Hot spot off Engine:Voice:default:default Stream:3 Pitch:5 Speed:5 Respect Audio Focus:On Network:Off Continue Task Immediately:Off ]
A10: End If
A11: If [ %titleofwd ~ Call via WD ]
A12: Call [ Number:%textofwd Auto Dial:On SIM Card: ]
A13: End If
↑ここまで
あとはスマートウォッチ側で
Automateにてスマートウォッチ側で通知を生成すればOK。ただし発行した通知は貯まっていくので、自動的に通知キャンセルするフローを組むと良い。今回の場合、以下の動作をスマートウォッチから親スマホにさせられる。
おまけ
逆方向Watchdroidを入れている場合のBrave Proの電池消耗具合。
だいたい1時間当たり3%くらい。30時間ちょい。まぁBrave Pro は何でかバッテリー消耗具合が安定しないのでご参考まで。
フルAndroidスマートウォッチでのジェスチャー系アプリの一覧
フルAndroidなスマートウォッチにて、動作を快適にするジェスチャー系のアプリを幾つかピックアップしてみた。なお個人的に使用しているのはエッジジェスチャー。
気をつけること
- アプリドロワー(パイコントロール)機能の有無。
- ショートカット起動への対応の有無。
- 有料か、広告付きか、フリーか。
特に2番はAutomateやTaskerとの連携が使用できるかどうかに関わる、大きな評価項目です。
エッジジェスチャー
Edge Gestures - Apps on Google Play
私の愛用。
- パイコントロールあり。左右下エッジ合計で最大30件まで。とは言え、丸画面の場合は実行数は少なくなる。
- ショートカット起動機能あり。
- 有料。200円。
- ほぼfluid navigation gesturesの上位互換。こっちで出来ないのはエッジのバーの分割くらいで、それもフルAndroidスマートウォッチの狭い画面では、分割しても使いようがない。
- 地味に便利なのは「引っ張ってスライドして音量の変更」や「引っ張ってスライドしてタスク切り替え」。
- ものすごく色々セットできるが、数が多過ぎて私は半分も設定してない。現実的に「右に引いて上にスワイプ」と「上に引いて右にスワイプ」を区別して操作するのは、狭い画面では難しい。
- フルAndroid機では、左の端からスワイプで「戻る」機能がOSレベルで割り当てられているが、エッジジェスチャーで適切に設定すればオーバーレイで上書きっぽくできる。元々の「戻る」はあんまり動きが良くないので、私はエッジジェスチャーの方を使ってる。
- 有料だけあって、機能追加も結構ある。
- 開発元はスクエアホーム(ホームランチャーでそこそこ有名な模様、タイル形式のホームアプリ)のところ。それもあって、今後もアプデは期待できる。
Fluid Navigation Gestures
Fluid Navigation Gestures - Apps on Google Play
- アプリドロワー機能なし。
- ショートカット起動機能あり。
- フリー。または280円のプロ版。
- 残念ながら、最終アプデが2019年。死んでる。
- エッジジェスチャーほど多機能でなくてもよければコレ。
- 有料とフリーでの機能差って有るんか?
- エッジからスワイプと、スワイプあんどホールドの2つが各バー毎に設定できる。数は少ないが十分ではある。
Smart Touch
Smart Touch (Easy Touch - Assistive Touch) - Apps on Google Play
- アプリドロワーあり。というかそれのみの機能。15個+フエィバリットアプリ10個まで。
- ショートカット起動あり。
- 広告付き、または有料。
- 画面の左右どちらかの端に、派手なサークルをセットする。このサークルをタッチするとサークルのドロワーが現れる。
- このサークルをくるくる回して動作を選ぶ。ちょっと楽しい。
- エッジジェスチャーやfluid navigation gesturesのような一発動作は出来ない。
- わたしはあまり魅力感じないが、海外だと使ってる人が多い印象。
Gesture Control
Gesture Control - Next level navigation - Apps on Google Play
- アプリドロワーなし。
- ショートカット起動あり。
- 機能制限のフリーまたはpro版。
- fluid navigation gesturesの下位互換かなぁ。
- アプリ起動の機能はpro版じゃないと解放されない。
Floating Tool box
Floating ToolBox - Assistive Touch - Apps on Google Play
- アプリドロワーあり。というかドロワーだけの機能。
- ショートカット起動機能なし。
- 広告付き、または有料。値段は忘れた。
- 画面上にフローティングのサークルが現れる。これをタッチすると、登録したアプリのアイコンが現れる。
- 登録できるのはアプリだけ。バック入力やホームヘ戻る入力も登録出来ない。
- 同じ系列でも、Smart touchのほうが大分高機能のような…。
- 某有名海外スマートウォッチレビュワーのオススメらしい。
Joinのカスタムアクションを活用する
JoinはTaskerと組み合わせることで強力な操作性を発揮します。で、私、通知notificationを用いて強引に時計から親スマホのHotspotのオンオフとかしていたけれど、Joinのカスタムアクション使えばそんなことしなくて良いことに気が付いた。
JoinからTaskerの任意のタスクを起動する方法
https://forum.joaoapps.com/index.php?resources/-arun-any-task-from-anyutoapp.139/
公式に説明動画付きでやり方のヘルプが載っている。英語の上に、Taskerの知識がある程度有ることが前提のようで、Joinから直接コレ読んだときは意味不明で訳わからなかった。だってその時点ではTasker使ってなかったし。なので、私も初心者ですが、わからなかったことヘの追記を箇条書きしておく。
基本的に、何故かは分からないが、この説明の通りにするとJoinのカスタムアクションからTaskerのタスクが実行できる。
- "=:="はTasker構文(?)での区切りを意味する。task=:= なら、初心者的理解は、「task;」か、「task<br>」みたいな感じ。Taskの後に構文的なスペースが挿入されるというか。
- %が頭に付いてる文字列は変数を意味する。
- Autoapps commandを利用するため、Autoappsはインストール必須。Tasker初心者にはAutoapps必須やで。あとAutoToolsプラグインも使ってる。
- Joinのカスタムアクションは、あくまでTaskerへの命令のみを送るのみのもの、だと思う。これからAutomateなどで待ち受けているBroacast intent receiver を叩くことは出来ない、と思う。
- Joinのカスタムアクションに別アプリ、Automateなどからpayloadのような引数をわたすことはたぶん、出来ない。固定のアクションを実行できるだけ。まぁやり方有るのかもしれないが。
- たぶん、やっていることは次の通り。たぶん。
- Autoapps command(中にJoinのカスタムアクションも含まれる)で発行されたコマンドのうち、頭に「task」が付いたものをキャッチする。プロファイル。
- Taskerに登録されているタスクをリストアップする。%taskに格納する。
- 引き渡されたtask=:=の後の文字列と、リストを比較する。%aacomm はたぶんAutoApps Commandのこと。これはAutoApps群(Joinが含まれる)から送られてくるコマンドを格納してる変数。
- この比較を行っているのがAutoTools。%task()をカンマで区切った文字列として見てる。なお、%taskの後ろの()は複数の数の格納を意味するようだ。アレイという意味か?
- %amatchedtexts()は、All Matched Textsのことだと思う。完全一致した文字列を格納してる変数。
- で、%amatchedtexts()に格納されてるうちの1番目?のコマンドを実行する。なんで0じゃないのかは知らぬ。
- と言うことで、2、3、4、5はコマンドが既存のTaskと一致してるか見てるだけ。直接%aacommを実行したらアカンのか?
-
→試したらイケる。確かにこうして既存タスクとの一致を見るのは賢いと思うが、初心者が知りたいのはそんな理解もしていない呪文的なやり方じゃないと思うんだ、、ここらのヘルプの冗長な構造がTaskerの弱点だと思う。そりゃ理解してる人には情報多くて嬉しいなーなるけど。
関連記事と親スマホ側のプロジェクト
Joinを利用してフルAndroidスマウォから親スマホの電話を発信させる、その2 - diablo3cs’s diary
アイデア: 電波の悪い場所で自動的に親スマホのwifiテザリングに切り替える - diablo3cs’s diary
上2つの記事での親スマホのTaskerプロジェクトをまとめたもの。一部、わいの接続確認のために音声出ます。
https://drive.google.com/file/d/1427PtrP3dR3vWr5QvehHViF710X8sXNm/view?usp=drivesdk
Taskerの下側タブからプロジェクトをインポートしてみてください。
プロファイルの説明だけ。タスクはそれに応じたものが付いてます。
- Get notification and Call : ↑記事の、Joinを経由して腕時計から親スマホに電話させるときに使うもの。Joinのカスタムアクションが外部からの変数を自動的に格納出来ないので、通知notificationを利用しているもの。今回は関係なし。
- Get notification Hotspot on : 特定の通知notificationが表示されるとHotspotをオンにして、喋る。↑記事で書いたとおりTaskerの説明ではAndroid10以上で動かない旨があるが、うちはAndroid10でも動いてる。
- Get notification Hotspot off : 特定の通知notificationでHotspot をオフにするだけ。
- AutoApps Command~ : 今回対象の。Autoapps commandが送られると反応するプロファイル。
フルAndroidスマートウォッチ側ですること
- Joinを起動する。
- 左上からナビゲーションバーをの呼び出して、アクションを選択。
- 右下の+から、アクション追加。
- CUSTOMを選択。
- 適当に名前を付ける。
- commandの部分に、頭に"task=:="を付けて、親スマホのタスク名を入れる。下の写真の場合は「Hotspot on」。
- deviceボタンから、送るデバイスを選択する。親スマホのこと。ウチの場合は「Redmi Note 9S」
- その下にあるDONEボタンを押して保存。みえねーが何故か400x400でも押せた。押せないときは、Optimization(またはシステムの最適化)のThird party adapterをオンにすると良い。
- Automateなどから、Joinのカスタムアクションをショートカット起動時させれば、いちいち通知notificationを出さなくても親スマホのHotspotオンオフなどを切り替えられる。ショートカット起動じゃなくて、Taskerプラグイン起動の方が正当か。なお、当然ながらデバイス毎に再設定する必要がある(共有化出来ない)。内部で使っているだろうURIが端末毎に違うためかな?
Joinすごいな。
補足
- AutoAppsで出ている関数のうち、%aapar() はこの場合、=:=の左側なので、先頭の"task"が格納されている。これ、2個目からの"=:="では%aaparに格納できないんかな?
- CUSTOM ACTIONのcommand下側にある「Write Prompt~」は実行時にダイアログで追加のコマンドを求めるもの。実際にはコマンド本文の後にさらに=:=を追加して入力された文字列を追加する。
- 最初の"=:="以降は、%aacomm()に順番で格納されている。
Bluetooth PAN使用時に、特定のアプリで自動でwifi テザリングに切り替える
Bluetooth PANは低消費電力で便利ですが、如何せん遅い。最大速度1Mbps。動画どころが一部のニュースの読み込みすら遅い。
遅いときだけwifiに切り替えたらいいんじゃない?
と言うことで、Automateで実装してみた。
関連記事
Joinを利用してフルAndroidスマウォから親スマホの電話を発信させる、その2 - diablo3cs’s diary
アイデア: 電波の悪い場所で自動的に親スマホのwifiテザリングに切り替える - diablo3cs’s diary
Joinを利用して、フルAndroidスマートウォッチから親スマホを操作する例。今回は二番目の記事で作成した親スマホのHotspotをオンオフする機能を流用します。追加で弄るのはフルAndroidスマウォ側だけ。
やること
- 時計側で特定のアプリ、YouTubeやニコニコ動画やらを開いた場合、wifiをオンにする。
- 同時に通知notificationを発行してJoin経由で親スマホのHotspotをオンにする。
- その後、Bluetooth PANを一時的にオフにする。BT PANが有効の場合、なんでか接続がwifiより優先されるためです。BT PAN有効下ではテザリングに接続出来ない。
- 他のアプリに変わったら元に戻す。
使うもの
フルAndroidスマートウォッチ側
- Automate
- Join
親スマホ側
- Join
- Tasker
今回はAutomate部分のみ書きます。その他については上の記事を参照ください。
作ったもの
Automate for Android ⋅ Auto_wifi_connect_by_app_V0.3
- 実行するとforegroundのアプリが変化するのを待つ。
- 特定のアプリ(今回はYouTube、ニコニコ動画、SmartNews、NHKニュース)がforegroundに来ていれば、wifiをオンにして親スマホにもHotspotがオンになる通知を出す。そしてBT PANを切る。
- 他のアプリがforegroundに来た場合、wifiをオフにして親スマホのHotspotオフ、BT PANを再接続する。
問題点
なんかAmazon Prime Videoは特殊な実装をしているらしく、foregroundで検出が出来なかった。なんでや?
BT PANからwifiへの切り替えには少し時間が掛かり、たまに親スマホ側で失敗してることがある。うーん。まだまだ習作や。
Taskerで丸画面のフルAndroidスマートウォッチの四隅へのクリックを実装する
2021 0315 エッジジェスチャーなしでも動くように変更しました。
暇だったので作ってみた。なお製作に当たっては、エッジジェスチャーとPOP UP WidgetとAutomateの組み合わせでの四隅へのタッチ入力が大活躍した。本末転倒やがな!
使うもの
言わずとしれた、最強のマクロツール。だいたい何でも出来るが、出来るようになるには真面目にマニュアル読む必要がある、と思う。わい新人じゃけん、わからん。有料。
AutoApps - Apps on Google Play
Tasker作者によるプラグイン集。プラグインを購入したかとかの管理もするらしい。入れなきゃならんみたい。コレだけなら無料。初心者必須。
AutoInput - Apps on Google Play
Taskerプラグインの1つ。ユーザー入力関係エミュレーションなどを猛烈に強化するもの。デフォルトのTaskerにはクリック入力のエミュレーションが存在しないのでプラグインに頼る。素人でも簡単操作。200円か、広告付きフリーで使える。7日の試用期間あり。Taskerは神アプリなので御布施してあげてください。
成果物
2021 0315改良版。
https://drive.google.com/file/d/1JdXRbZM7Y8ixbSbWiMcURC-uF22zX-W5/view?usp=drivesdk
Kospet Prime2専用。Tasker起動画面の下端のプロジェクトタブからインポートしてください(ホームマークを長押し)。
内部見れば分かるが、たんに四隅のx,yポイントを指定してクリックしてるだけなので、悲しいことにKospet Prime2の480x480でしかキチンと動作しない。真面目にやるなら画面の幅あたりを取得して割合指定するんだろうけど、これで勘弁してください。なお、私の設定がおかしいのか、違う画面サイズで読み込むと勝手にダイアログ表示領域が拡大縮小する。が、クリックの位置は変わらないので400x400画面などの場合は弄らないとちゃんと動作しない。
※需要があれば400x400版をつくります。
Gesture系アプリと連携した場合
Taskをエッジジェスチャーなどから「from GestureApp」を実行すると、以下のオーバーレイが出現する。(四角い、半透明の)。
それぞれ四隅の矢印は指してる方向の隅をクリック入力する。右上の右から二番目は右上の二番目あたりをクリックする。また左下は長押しで、左下を長押しする。
中央の横列3個はそれぞれ左から
- Empty。このオーバーレイを消去して内部のトグル関数を0にする以外、何もしない。
- Automateへの連携。Broacast Intentを発行して任意のAutomateフローを起動する。指定の仕方は↓。
- これまたAutomateフローへのintent。例として入れてある。
これらは内部を弄らないと動かない。
全然参考にならないAutomateのflow shortcutの構文メモ - diablo3cs’s diary
ボタンを押すと消える。十秒以内にクリックしなくても消える。権限は適当に与えてください。
単独で使用する場合
エッジジェスチャーなしでもTasker(とAutoApps、AutoInput)のみで同じようなことが出来るようにした。タスクから「Setbar」を実行すると、下端の左寄りに半透明のバーが現れる。
このバーの動作は、
- クリックすると↓の四隅への入力他パネルが現れる。
- もう一度クリックすると四隅への(略)パネルが消える。
- 長押しすると5秒間、バーが消えて再度出現する。
- バー右下の×ボタンはタスクの終了。
なお、オーバーレイを使用したので空いてる部分をスワイプすると下のアプリなどを動かせる。また、このバーからパネルを呼び出した場合、消えるまでの時間制限はない。
問題点
最小構成で、TaskerとAutoAppsとAutoInputが必要だが、この場合にバッテリー消耗が増加するかは未確認。確認してるところ。
追記 20210314
も少し確認が要るけど、バッテリー消耗の増加はかなり少ない模様。
Appendix 1
エッジジェスチャーからTaskerのタスクへのリンク方法。
タスクを割り当てたいタブと動作を選ぶ。今回は下エッジ、上にスワイプ&ホールドにする。
割り当てる動作のダイアログが表示される。
下の方に有る、「タスクのショートカット」を選ぶ。
今回は「from GestureApp」を選ぶ。
選ばれたTaskerのタスクが表示される。戻るで完了。
APPENDIX 2
なお、エッジジェスチャーとPOP UP WidgetとAutomateで実装した場合はこんな感じ。
大体同じだが、後から位置や大きさを変えられるのでつぶしは利く。が、各個人での試用になって他の人との共有には向かない。
よい時計を。