保管していたMakibes M3を解体する
ずーと使わず置いておいたMakibes M3の裏蓋が死亡していたので、解体して遊んだアル。
裏蓋破損状況
Makibes M3 = Kospet Optimus無印。公称IP67ですが、この解体記録みればIP67とは、、と思うでしょう。IPx7の防水試験は、製品のてっぺんから15cm以上高い水面の水槽に静かに置いて30分らしい。
裏蓋を引っ掛ける側の受けが吹っ飛んでた。この裏面のプラスチック、自然経過でクラック入るわで大概、不良品アル。なお私の手元にもう一台あるKospet Optimus Proも裏面プラスチックにクラック生じているので、なんかの設計ミスかも知れない。
解体写真
バッテリー側と本体側をばらしたところ。バッテリー周りは厳重に熱伝導シートでグルグルされてる。中身はぎっしり。
バッテリー、公称通り、800mAh。Kospetは基本的に正直ではある。3.04Whなので3.8V換算か。
バッテリー取り除いたところ。
スピーカー部分。スピーカー本体周りは糊で密着させられている。
(写真右側、棒が出てるところ)ここに細長い穴があいている。どこまて水が入るかは素人には難しい判断だが、スピーカー本体まで浸水する可能性が高いと思う。たぶん、スピーカーの周りの糊で止まる。
も一つの穴、マイク部分(棒で指してるところ)。完全に封がされている。マイク自体は浸水しても内部までは入らなそう。
裏側と、中筒の間のパッキン。これ、裏面-中筒間の止めネジ4箇所で果たしてパッキンの要求面圧が満たされているのだろうか。うーん、まぁパッキン居るだけましか。
本体側。
画面側とメインボードばらしたところ。
メインボード。熱伝導シートでガチガチ。2+16はSoCのRAM2GBとROM16GBと思われる。
画面側。どうも表側からはめ込んでるようなのだが、表側セラミックベゼルがかなりがっちり固定されていてばらせなかった。
問題のボタン周り。ボタンを押すと、軸が出てスイッチを叩く。軸は簡単にスナップリングで留められているだけ。
ボタン、外側から。
ボタンを外したところ。まぁ、小学生が設計したような造りですね。防水なんて一切考慮されていません。単にスプリングで押し返してるだけ。パッキンなんて無い。そりゃ、ボタン押したら水入るわ。で、あまりに簡素な構造なので、そりゃ押す感覚がすぐ変になるわ!と思った。おーまーえーはーあーほーかー!機械設計なめんなよ。
ボタン外した本体側。たんにバネ留めるてるだけ。絶望した。
カメラ部分のカバー外したところ。単に丸い樹脂をはめ込んで糊で止めてるだけ。うーん、絶対水が入るとは言いませんが、かなり怖い設計。日本のメーカーならたぶんしない。
外したカメラのカバー。この周りの黒い部分の糊付けで水を止める構造。わいなら倍は樹脂盛るかなぁ。まぁそれやるとコストかなり上がりますが。
蛇足、感想
IP67って一応、生活防水レベルですよ。本当に試験通ったんかいな。特にボタン周りは失望した。こんなんオモチャでも、もう少しマシな設計する。
効果確認、電波の悪い場所で自動的に親スマホのwifiテザリングに切り替える
アイデア: 電波の悪い場所で自動的に親スマホのwifiテザリングに切り替える - diablo3cs’s diary
↑元記事。あれやこれや魔法を使って確認しました。
4Gの電波が弱いとどのくらいバッテリー消耗するか
Kospet Prime2の場合。
2枚目キャプチャー画面は1枚目に説明を付けたものです。オレンジ枠の部分が電波環境が悪い場合のバッテリー消耗の具合です。猛烈なバッテリードレインが生じており、Kospet Prime2の1600mAhですら10時間も保たないレベルで消耗します。この時の電波状況は、
このくらい。電波強度でいうと、1%台~15%以下です(この電波環境探すのに土日歩き回った。大変やった)。たまに4Gも掴みますが、ほとんど3Gになってしまい、かつ通信がほぼ成立しません。このバッテリードレインは、モバイルデータ通信をオフにしてもSIMを刺している限り、発生します。フライトモードなら回避は出来る。
で、上の記事の親スマホにHotspot起動させて接続した場合は緑枠の部分。
電波強度が40%を超える環境でのSIM運用よりはバッテリーを消耗しますが、かなりマシになっていることがわかります。
自動で4G通信とwifi Hotspotの子機を切り替える方法
一番上の記事を参照ください。4Gの電波強度が弱まると時計側から信号を送って自動で親スマホのHotspotを起動させ、デザリングに繋ぎにいくことが出来ます。
今回の検証、マジ疲れた。
おまけ
その後、電波強度が十分(40%超)に戻すとこうなる。
ばななーばななーばななー
顕著にSIMの電波状況が影響してるー
ばななー
Full Android Watchをジェスチャーで操作する V. 3.58くらい
Full Android Smart Watchをジェスチャーで操作する、Android10対応 - diablo3cs’s diary
↑過去記事。
wear OSで出来る、腕を振るだけでスクリーンを送ったり戻したりする機能に似た何かを実装する何か。Kospet Prime2やRogbid Brave Proにて、時計した腕を振るだけで通知表示をスワイプしたり、WatchDroidの履歴見たり、WatchDroid経由で電話受信時に電話に出たり(時計で通話は出来ないが自動でスマホのスピーカーONにするよ)できる。
実装の仕方は素人同然で頭良くないけど便利なように作った!わいの力作や! 誰も使ってくれないけれども。
改良したのでいちおう。
Automateで実行します。バッテリー消耗に気を使って&誤操作防止に画面オフ時は全てのモーション待機が解除されます。まぁScreen on rising(腕上げて点灯)が有効なら関係ない気もしないでもない。
Automate for Android ⋅ GestureControl_AndroidWatchPhone_Rev3.35n
詳細はDescription見てください。
改良点
Watchdroidがforegroundの場合
- 音楽操作モードでは自動でホームに戻らないようにした。連続で音楽操作モードを扱える。
- 音楽操作モードでは、シェイク1回で曲送り、シェイク2回で曲戻しできる。片手で時計振るだけで音楽操作出来るアル。
WatchDroid経由で電話受信時、及び通話中
- シェイク1回で「電話に出る」その後自動でスマホのスピーカーON。
- シェイク2回で「拒否」または「通話終了」。急な電話でも腕振るだけで電話出たり出なかったりできる。
蛇足
腕振るジェスチャーを確実に判別できそうなのは今のところ次の3パターン。
- 腕を1回シェイクする(ひねるように振る)。
- 腕を2回シェイクする。
- 腕を4回くらい、いっぱいシェイクする。
Android7機ではこの他に、「腕を向こう側に倒して止める、その後戻す」も安定して識別出来たんですが、Android10機ではイマイチ判別出来ない。まぁ安定して3パターン操作出来れば色々出来ます。使い方はアイデア次第。まぁすんごく複雑になったので改造するとき、中身が訳わからんかも知れませんが…
Kospet Prime2での設定例とTips
Android10搭載のFull Android Watchの設定例と設定のTipsを書いておきます。Android7搭載機とは若干違います。
設定項目
- SIM、Wifi、Bluetooth、GPSの有無
- 位置検索 Wifi Bluetoothスキャンの有無
- スマホとの連係方法(WatchDroidやJoin、いないとは思いますが、Wiiwatch2など)
- 画面輝度
- 腕を上げて画面点灯、通知で画面点灯の有無
- バッテリーセーバー(Android7機で言うところのBack Ground Cleaner)の有無、そこからの除外アプリ
- 電池の最適化除外アプリ
- Google系アプリの導入状況(これらは勝手に通信する事がある)
- ホームアプリの選択
- (インストールしたアプリ)
- OS側データセーバーの有無、除外アプリ
補足事項
- 1. SIMについてはモバイルデータをオフにしても電波が悪かったり移動が多いと電池を酷く消耗します。
- 2. 意外と忘れる、スキャン設定。wifiスキャンはなかなかにバッテリードレインします。
- 4. 画面輝度はPrime2は相当明るい(amoled のKospet Optimus並み)ので最大じゃなくても日光の下で十分見えると思う。
- 5. 腕上げて画面点灯はセンサーを利用しているために電池消耗は大きいですが、コレがないと腕時計としてry なおGravity GestureやScreen Onなんて有名アプリを使ってもセンサー利用の時点で同じことなので、バッテリー消耗は回避出来ません。むしろGravity Gestureはかなり電池喰います。凄いアプリなんですが。
- 6. Optimizationのバッテリーセーバー(旧Background Cleaner)はFull Android Watch特有の機能です。電池設定から選べるバッテリーセーバーとは異なります。機能は画面オフ時に除外アプリ以外をKillするものです。Android10ではGoogle系アプリだろうがほぼ確実に停止させられる強力さ。Android7のKospet Primeとは違い、オンが推奨されます。Android10ではデフォルトのホームアプリを殺さない。素敵。
- 7. 言わずもがな。電池最適化から除外されたアプリは何時でも勝手に起動しちゃいますし、背後でもガリガリします。
- 8. Google関係は勝手に通信することが有ります。某所掲示板曰わく、Google検索とGoogleのdiscoverが消耗する原因の1つらしい。なお、Android7で利用出来た、「アカウント同期の停止」の設定はHidden Settingなどから、「アカウント(setting$AccountDashboard)」でオンオフ出来ます。試しましたが、基本的には6.のバッテリーセーバーで十分な気がしないでもない。
- 9. ホームアプリは常時読み込まれるため、いちおうバッテリーに影響する模様。たぶん、wiite(デフォルトのホームアプリ)とUniversal Launcherで差はないと思う。
- 10. 色々インストールするとバッテリーのもちが悪くなることがある。顕著なのはCPU監視系、CPU-ZやCPU-Xなどは影響してる、気がする。とは言え、アプリ入れなきゃフルAndroid機の意味がないので、好きに入れれば良いと思う!
- 11. OSに組み込まれたDatally類似機能。Hidden Settingなどから、データセーバー(Setting$DateSaverSummary)を設定することでオンオフ、対処アプリを選べます。デフォルトはオフ、Google開発者のみが許可されています。
Hidden Settings - Access Hidden Features - Apps on Google Play
Kospet Prime2での設定例
SIMでの運用のみ、Join使用。
- SIMあり、Wifi なし、BTなし、GPS あり
- 位置検索、Wifi BT スキャンなし
- 連係、Joinによる
- 画面輝度、最大
- 腕を上げて画面点灯オン、通知で画面点灯オン
- バッテリーセーバー(BackGround Cleaner)あり、除外アプリJoin、エッジジェスチャー、Automate、WatchdroidAssistant(念のため)
- 電池最適化除外、追加はJoin(元々最適化不可)のみ
- Google系の追加アプリ、Googleマップ、Googleアシスタント
- ホームアプリはデフォルトwiite
- インストール済みアプリ、Join、ニュース系、念のためのWatchdroid、YouTube、YouTube Music、Prime Videoなど。
- OS側データセーバーなし。
待ち受け1時間あたり、だいたい1%から1.5%の消費。待ち受けだけなら3日から4日。
なお、DatallyはAndroid10ではOS側の機能に類似のものが組み込まれているので、効果がない旨が通知されます。実際に使うと、Datallyは起動はしているものの、通過した通信量をチェック出来ません。入れなくても問題ないでしょう。Android10、意外と優秀。
特定のアプリを許可していく
上記設定ではGmailすら受け取れませんが、親スマホで受けたメール内容などはJoinにて通知を受けられます。またJoinからその通知を開けば、Gmailに繋がるので実質、困らない。
とは言え、常時起動していないと意味がないアプリも多々ありますので、その場合の除外方法も書いておきます。
- Optimizationのバッテリーセーバーから除外する。
- アカウント同期停止の対処にしている場合は、許可。
- 電池最適化からの除外は、必要に応じてする。
- OS 側データセーバーを使用している場合は除外。
これで任意のアプリを通信させることが出来ます。正直、Optimizationのバッテリーセーバーが強力なので、コレだけで許可をオンオフしてもいい気がしないでもない。
素敵な時計を。
WatchDroidで受けた通知を識別して任意のアプリを起動する
私はJoinとWatchdroidを使用しています。主にBluetoothでの消費電力がなんか怪しいKospet Prime2はJoinを、なんかどうやっても40時間切るくらいしか保たないRogbid Brave ProはWatchdroidで連携させています。
で、JoinとWatchdroidの違いは幾らでも有りますが大きな点に「Joinは、通知を受けた際に、受けた側で同じアプリ、場合によっては同じ内容まで表示できる」というモノがあります。なんか前にも同じこと書いた気もしますな!
折角だからWatchDroidでも通知を出した大元のアプリを起動出来るように頑張ろうとして力尽きた。
考え方
- Automateで実装する。
- Watchdroidで通知を受けた後、履歴リストに記録される。(Watchdroidの機能)
- マクロ起動は手動で行う(POP UP Widget経由)。
- 履歴から該当の通知を表示してマクロ起動。タイトルを格納する。
- タイトルを識別して、当てはまるアプリを起動する。
問題点
- 1つのアプリから発行される通知は、タイトル1種類じゃないの。沢山あるの。おっぱい。
- 例えば、SmartNews。CMまでしてるお金あるニュースアプリですね。ブルジョアが。このアプリで通知されるタイトルは、「SmartNews」、「今日の PICK UP」です。
- 例えば、NHKニュースの場合、「INFO」「ニュース速報」「最新ニュース~」です。
- Gmailに至っては、タイトル=メールの題目なので、識別すら出来ません。
- Lineやらもタイトルが相手の名前なので識別難しいですが、そもそもWatchDroidはLineなどに返事出来るので気にしなくても良い?
- こういったタイトル全部に識別を付けなければならず、処理フローのブロック数は膨大になります、、そしてJoinのように内容まで同期させることは出来ません。
まあサンプル程度のつもりで、
NHKニュースとSmartNewsの2つについて起動させるサンプルflow作ったので参考にでもしてください。
NHK NEWS & Disaster Info - Apps on Google Play
SmartNews: Local Breaking News - Apps on Google Play
Automate for Android ⋅ inspect_and_start_v0.4
補足
例のごとく、フロー開始直後のInteract TouchとDelayブロックはPOP UP Widgetから起動する際のPOP UPを消すものと少しだけ起動を待つものです。POP UP Widgetを使わない場合は不要です。
title識別はInteractブロックのInspectを使ってます。Package、UI element class、UI element IDを指定することでtitleをcontentに格納できます。工夫したのはそこくらいで、あとは普通のマクロのはず。
よい時計を。
アイデア: 電波の悪い場所で自動的に親スマホのwifiテザリングに切り替える
2021 3/6更新。効果関係は確認中。
効果確認しました。バッテリードレインを回避出来ると思います。
効果確認、電波の悪い場所で自動的に親スマホのwifiテザリングに切り替える - diablo3cs’s diary
まだアイデア段階です。確認は今度するの。
確認済み。上の記事。
SIM刺してる場合、フルAndroidスマートウォッチは電波の悪い場所ではモバイルデータ通信を切っても、バッテリーを恐ろしく消耗します。基地局を一生懸命掴みにいくのかしら。
と言うことで、4Gの電波強度が弱い場合に、親スマホを操作してwifiでテザリングさせ、繋ぎにいくマクロを組んでみました。
なお、このやり方でSIM刺し電波劣悪な環境のバッテリー消耗速度がマシになるかはわかりません。まだ試してないけん。アイデアです。
マシになる。
時計側から親スマホに任意のマクロを実行させる方法
Joinを利用してフルAndroidスマウォから親スマホの電話を発信させる、その2 - diablo3cs’s diary
Joinを用いてインターネット(Google鯖)経由する場合の構築例。他にもTaskerにてAutoRemote 使うとか、方法は色々有りそう。とりあえず今回はこれを流用します。
確認環境
- Kospet Prime2 V1.4
- Redmi Note 9S、Android10、MIUI12、rootなし、セキュリティーロック無し。
なお、本当はTaskerを使ってすら、Android10のHotspotオンオフは出来ない、て書いてあったがウチでは出来た。中華の怪しいスマホだからか?解せぬ。
事前にしておくこと
- Root、ADB不要。親スマホの環境によっては必要かも。まぁ紹介例なんで、深く考えないでください。
- 親スマホのHotspotに時計をつなぐ。認証などを済ませる。
- 時計側Android10機では接続形態を選べるので、「従量制」にしておく(通信を減らす)。
時計側の動作案
- Automateで実装する。
- 電波強度が25%を下回ると親スマホのHotspotをオンにする通知をだす。
- 通知はJoinにより親スマホに送られる。
- 5秒くらい待ち、時計側のwifiをオンにする。(親スマホHotspotへの接続は自動に頼る)
- 電波強度が32%を越えた場合、Hotspotをオフにする通知を出す。 ※あれ、電波強度が確認出来てるならバッテリー消耗するんじゃね? 後で試そう。
- 通知はJoinにより親スマホに送られる。
- 5秒くらい待ち、wifiをオフにする。
- 電波強度25~32%は動作マージンとする。
追記
電波強度が安定せず、思ったよりチャタリングするため、7秒のインターバルで2回の結果が規定電波より低い/高い場合に作動するようにしました。また通知消去のJoinの信号が行方不明になる例が多かったので少しディレイして調整しました。
Automate for Android ⋅ Auto_Change_LTE_to_Wifi_v0.2
親スマホ側の動作案
↓HotspotをJoinの通知からオンにするだけのもの
Profile: Get notification Hotspot on (3)
Restore: no
Event: AutoNotification Intercept [ Configuration:Event Behaviour: true
Notification Type: Only Created Notifications
Notification Title: Hotspot On
Notification Text: Hot on
Package Name: com.joaomgcd.join ]
Enter: Hotspot on (6)
A1: WiFi Tether [ Set:On Keep Wi-Fi when turning on:On ]
↑ここまで
https://drive.google.com/file/d/1w6AT_-6e7wsDRnAag-uaZ2lYkDNvlJuf/view?usp=drivesdk
↓HotspotをJoinの通知をからオフにするだけ
Profile: Get notification Hotspot off (9)
Restore: no
Event: AutoNotification Intercept [ Configuration:Event Behaviour: true
Notification Type: Only Created Notifications
Notification App: Join
Notification Title: Hotspot Off
Notification Text: Hot off
Package Name: com.joaomgcd.join ]
Enter: Hotspot off (10)
A1: WiFi Tether [ Set:Off Keep Wi-Fi when turning on:Off ]
↑ここまで
https://drive.google.com/file/d/1uNiJcnWpkRDTRqHrGX64frUSGlizS_aO/view?usp=drivesdk
WatchdroidでのUIのメモ
2021 0306追記。電話受信時分。
2021 0310追記。
自分用メモですが、もしかするとWatchDroidを使用している人には参考になるかもしれません。各UIでのActivityと操作ボタンのUI elementなどです。これらを用いればWatchdroidがどの状態であるか判別出来ますし、自動操作マクロが作れます。なお、UIの言葉みる限り、作者の人はイタリアあたりの人なんかな…。微妙に読めん。
Ver. 15.11.46.15の場合です。
Watchdroid Assistantのパッケージ正式名
Package:
"com.lumaticsoft.watchdroidassistant"
Watchdroid Assistant起動時の画面
アクティビティ
"com.lumaticsoft.watchdroidassistant.WDPD"
※アクティビティを指定することでWatchDroidがどの画面を開いているか判別出来ます。
通知履歴に入るボタン
UI Element Class:
※これは単に画像あり動作ボタンを意味するだけのものです。他のアプリ含めて同様な画面に表示されるボタンは同じようなクラスを持ちます。以降、classはなくともボタン指定可能ですので省略します。(少なくともAutomateはIDのみ指定でOK)
UI Element ID:
"com.lumaticsoft.watchdroidassistant:id/imageViewPantGenericaLinCentIzq"
※こちらが基本的にボタンを指定するIDです。
音楽操作へ入るボタン
UI Element Class:
UI element ID
"com.lumaticsoft.watchdroidassistant:id/imageViewPantGenericaLinSupDer"
心拍数測定、歩数履歴に入るボタン
UI Element Class:
UI element ID
"com.lumaticsoft.watchdroidassistant:id/imageViewPantGenericaLinCentDer"
通知履歴画面内では
アクティビティ
"com.lumaticsoft.watchdroidassistant.WDPNL"
バックボタン
UI element class:
"android.widget.RelativeLayout"
UI element ID:
"com.lumaticsoft.watchdroidassistant:id/relativeLayoutPantVolverGenericoLista"
※履歴から通知を開いた場合からの戻るボタンも同じもIDです。どうも通知履歴内部での処理は同じ名前のものが多く、マクロ処理は簡単ではなさそうです。
音楽操作画面内では
アクティビティ
"com.lumaticsoft.watchdroidassistant.WDPCRMC"
次の曲ボタン
UI Element ID
"com.lumaticsoft.watchdroidassistant:id/imageButtonPantControlRepMusicaCoverProximo"
前の曲ボタン
UI Element ID
"com.lumaticsoft.watchdroidassistant:id/imageButtonPantControlRepMusicaCoverPrevio"
再生/停止
UI element ID
"com.lumaticsoft.watchdroidassistant:id/imageButtonPantControlRepMusicaCoverPlayPausa"
音量アップ
UI Element ID
"com.lumaticsoft.watchdroidassistant:id/imageButtonPantControlRepMusicaCoverVolMas"
音量下げる
UI Element ID
"com.lumaticsoft.watchdroidassistant:id/imageButtonPantControlRepMusicaCoverVolMenos"
着信時
アクティビティ
"com.lumaticsoft.watchdroidassistant.WDPNLl"
電話拒否
UI element class:
UI element text:
"拒否"
※電話対応で出るかどうかのボタンは、UI element textで区別されます。すなわち、システムの言語が日本語の場合は「拒否」と「電話に出る」となります。
UI element ID:
"com.lumaticsoft.watchdroidassistant:id/textViewPantOpcionesLista"
電話に出る
UI element class:
UI element text:
"電話に出る"
UI element ID:
"com.lumaticsoft.watchdroidassistant:id/textViewPantOpcionesLista"
WatchDroidAssistantがPhoneから通知を取得したとき
アクティビティ
"com.lumaticsoft.watchdroidassistant.WDPNDD"
タイトル部分のUI Element ID:
"com.lumaticsoft.watchdroidassistant:id/textViewPantNotificacionCompletaDe"
テキスト部分のUI Element ID:
"com.lumaticsoft.watchdroidassistant:id/textViewPantNotificacionCompletaTexto"
通知を確認
UI element class:
UI Element text:
"捨てる"
※通知を確認と「声で書く」などの反応はtextで識別されます。すなわち、日本語専用。
UI Element ID
"com.lumaticsoft.watchdroidassistant:id/textViewPantOpcionesLista"
声で返答
UI element class:
UI Element text:
"声で書く"
UI Element ID
"com.lumaticsoft.watchdroidassistant:id/textViewPantOpcionesLista"
声で書く内部
アクティビティ:
"com.lumaticsoft.watchdroidassistant.WDPNRT"
※メッセージ返答前の待ち時間も同じアクティビティ
応答ボタン
UI element class:
UI element text:
"応答"
UI element ID:
"com.lumaticsoft.watchdroidassistant:id/buttonNotificacionRespuestaTecladoEnviar"
途中ですが、
全部書き出そうと思うと相当大変なので、主に使用するであろう通知履歴部分と音楽再生部分を書き出してみました。通知履歴部分はもう少し動作みないとよくわからぬ。
なお、調べ方はAutomateのIntractブロックやらApp foregroundブロックなどを使って調べています。また、今後WatchDroidの仕様、つーか内部の名前が変わると使えなくなる可能性があります。その場合は許してください。