スキップしてメイン コンテンツに移動

投稿

ラベル(Android)が付いた投稿を表示しています

アプリ不正使用防止マクロを少し変えました(MacroDroid)

 個人情報が参照できるようなアプリって、起動時に ・二段階認証 ・生体認証 ・パスワード認証 ・パスキー認証 とかが必要になるように設定できるじゃないですか。 そういう機能がないアプリでも、Galaxyだとセキュリティフォルダで対応できるんですが、結構使い勝手が悪いんですよ! そもそも、Androidが全てのアプリに対して、起動時に生体認証などを要求する設定が出来るようになれば良いんですけどね。  サードパーティのアプリで、指定したアプリを起動した際に生体認証要求するように出来るものもあるんですが、色々試したんですが当然ながらアプリ起動後に生体認証要求が出るんですよ。なので、アプリの画面が表示された後なんですよ。 本当なら、アプリ画面が表示される前に認証要求が出て欲しいんですが、やっぱりそれはAndroidが標準機能として実装しないと無理ですよね。 で、アプリ画面起動後でも認証要求が出れば、不正操作は防止できるなぁと思って、インチキ臭いマクロをお試しで作ってみました。 至ってシンプルです。 トリガーは特定のアプリ起動時です。 トリガー発動で、生体認証要求が出ます。 で、認証OKならそのままアプリを使えます。 認証NGならホーム画面に戻ります(ついでにフロントカメラで撮影)。 あと、自宅にいる時は不正使用されないので、条件に自宅範囲外を入れました。 アプリが起動した画面を表示したまま認証要求が出ないように、 ・最初にホーム画面を表示 ・認証OKなら最近使ったアプリ一覧を2回表示させるアクションでアプリ画面に戻す ってのも試したんですが、当然ながらアプリ画面に戻したタイミングで認証要求が出るので無限ループに陥ります。 で、条件にこのマクロが停止中を追加してみました。 更に、最近使ったアプリを表示するを2回連続で実行すると上手く動かなかったので、少し間を置くようにしました。 あと、マクロ停止中の条件に引っ掛かりやすくするために、最後に2秒待ち時間を足しました。  これで、トリガーのアプリを起動したら、直後にホーム画面が表示されてから認証要求が出ます。指紋認証している部分は録画できないので真っ暗な画面になってますけどね。 で、認証がOKならアプリ画面が表示されますね。  ま、ちょっとお試しで作ってみただけなので、使う予定はありません。 ...

MacroDroidで予定を読み上げてもらうマクロを少し変更しました(配列/連想配列を繰り返すって便利ですね)

 GeminiからGoogleホームへの連携がイマイチになったので、MacroDroidで予定を読ませるマクロを作ったんですが、 予定を配列変数{全予定}に取り込んだ後に、 ・予定数を変数{予定個数}に格納 ・変数{ループカウント}をリセット ┏ループ開始:変数{ループカウント} < 変数 {予定個数} ┃テキストを読み上げる:{lv=全予定[{lv=ループカウント}][Title] ┃変数{ループカウント} + 1 ┗ループ終了 と言うアクションをしていました。 でも、 配列/連想配列を繰り返す と言う、物凄く便利そうなアクションがあることに気付きました。 試しに使ってみました。 折角なので、予定の読み上げはサブルーチン化して、 ①予定を確認するマクロ ②予定を取得するマクロ ③予定を読み上げるマクロ(アクションブロック) にしました。 これで、①のロジックを複数のマクロに入れても、②と③は共通で使えます。 ①予定を確認するマクロ 簡単に言えば、②のマクロを実行する(アクションの下から2行目)だけです。 でも、呼び出す時刻で、今日の予定を知りたいのか、明日の予定を知りたいのかが変わってくるので、 取得する予定のオフセットをグローバル変数{スケジュールオフセット}で指定できるようにしました。アクションの下から4行目ですね。このマクロは朝しか実行しないので、取得したいのは今日の予定です。なので、今の時刻{hour}に"-"を付加して、ほぼ今日の0時からの予定を取得するようにしています。  ②予定を取得するマクロ 予定の取得は取得したいカレンダーの数が多いと長くなってきます(対象カレンダーを変数や配列で指定することができないので個別のロジックが必要ですね)。 でも、個々の取得ロジックは至ってシンプルです。 カレンダーの予定を取得アクション(アクションの3行目)をするだけです。  取得した予定をグローバル変数{取得予定(共通)}に格納しています。 予定の件数を読み上げさせるのも至って簡単でした。グローバル変数{取得予定(共通)}の前に"size="を付与するだけで配列数が得られます(アクションの4行目)。 後は、③を実行するだけです。 カレンダー予定を取得するアクションですが、 ・オフセット開始(分 | 時 | 日) ・持続時間(分...

+StyleのデバイスがSmart Thingsから操作できるじゃないですか!(モードとルーチンからも操作できます)

 我が家は+Styleと言うブランドのホームオートメーションを使っています。 とは言っても、スマートプラグ以外は、赤外線リモコン操作なんですけどね。 で、この+Styleってマイナーなんですよ!  しかもやる気も感じられません。 でも、+Styleのアプリで条件を設定できるシーンと言うものがあり、ちょっとした自動化 はできます。 ただ、条件などがショボいのであまり実用的とは言い難いですね。 そんな訳で、私はGoogleホームから操作するようにしています。 +Styleのアプリから、Googleアシスタントと連携させると、Googleホームにデバイスが表示されるようになります。Googleホームも実行トリガーの条件とかはショボいんですが、「OK Google」で呼び出せる幸せがあります。 「OK Google おやすみ」で、家中の照明やスマートプラグをオフにして、明日の予定や天気を読んでくれます。 でもね、Geminiを経由させるせいで動きが変になってきてるんですよ。 Geminiが、Googleアシスタントを経由させていないのか、Googleホームの自動化ルーチンを使わないのか分かりませんが、時々期待通りの動きをしないことがあるんです。 きっちりとGoogleアシスタントを使わせる方法としては、GoogleアクションブロックとMacroDroidのUI画面操作で無理矢理対応しましたが、「OK Google」トリガーではGemini任せになるのでどうにもできませんね。 でも、位置情報などをトリガーにもしています。 Googleホームで自動化しているものは大きく3種類 ①ホームデバイスの操作 ②各種情報収集(と言っても天気や予定程度です)  ③MacroDroidやモードとルーチンへの連携のための通知出力 です。 この中で③は、①がMacroDroidやモードとルーチンからできないのが大きな理由です。 なので、③MacroDroidと連携してでWOLでPCを起動する前に、①でモニターが接続されているスマートプラグをオンにしていたりします。 なので、①がMacroDroidやモードとルーチンで出来るようになれば、Googleホームと連携しなくてもよくなるんですね。  で、冒頭の+Styleの話に戻りますが、とにかくマイナーブランドなん...

MacroDroidの動作が変になりました(解消&標準の重複動作防止策があったんですね)

トリガーまで待機のアクションで、条件を通知が消去されたときにした際に、Android16+のグループ化をしない通知設定にすると発生する不具合の解決法を模索したものです。 解決はしていません。 毎朝の定例ルーチンをさぼらない様に、目覚ましアラーム停止をトリガに色々とマクロで動かしています。 1.目覚ましアラームを停止 2.目覚まし停止 で Geminiに家の電気付けたり予定とか天気を読み上げ   3と連携するための通知を出力 3.連携通知表示 で スマホやスマッチを決まった設定に戻す   4と連携するための通知を出力 4.連携通知表示 で 朝の健康管理ルーチンマクロ実行 なんですが、朝の健康管理ルーチンの動作が変になっちゃいました。 マクロは単純明快なもので、上から下まで流れるだけです。 トリガーは上記の3からの連携通知出力だけです。 で、動きがおかしくなったのが、通知消去まで待機するトリガのところなんです。 筋トレ器具を使って毎朝筋トレするんですが、器具に座るまで待つために通知の消去をトリガにしています。通知を消すとマクロが続行されます。 この動きは完全に正しく動作しているんですが、この通知を消すと、このマクロが新規で開始されちゃうんです。 このマクロは、万が一途中で何かあった際にマクロを再実行すると途中から再開できるようにローカル変数で進捗を制御していて、ローカル変数の数値によって再開場所を判定しています。 で、丸印の通知消去のトリガ解除(通知を消去したとき)すると、別インスタンスでマクロが実行されて、再度筋トレ器具に座るのを待つロジックが動くんです。 でも、最初に実行されたインスタンスのマクロは問題なく動作するので実質支障はないんですが、気持ち悪いのでユーザログを出力して確認してみました。 黄色い枠がマクロの一連ですが、筋トレ器具に座ったら消す通知を消した際に、 通知が消去された時 トリガでマクロが開始されていました。 こんなトリガはこのマクロには無いんですが、なぜか実行されるようになりました。 今までは問題なく動いていたんですよ。 AndroidかMacroDroidのアップデートで挙動が変わったんだと思いますが、設定していないトリガでマクロが動き出しているので問題はMacroDroidの方だと思っています。 手っ取り早い解決策は、マクロ実行中を判断できるロー...

Galaxy Watchから+Styleのホームデバイスを操作してみま した

  +Styleのデバイスが、少々想定とは違うとは言えSmart Things登録できるようになったことで、モードとルーチンから直接(もちろんSmart Thingsを経由しますが)操作できるようになりました。 これで、スマホやスマッチの設定を外出時にバイブにしたりするルーチンに、家中の照明を消す動作が組み込めるようになりました。 で、たまたまなんですが、Galaxy Watchのタイル設定を眺めていたら、モードとルーチンがあるんですね。しかも、Googleホームのように一つのタイルページに一つしか置けないような制限がありません。 タイルの追加から モードとルーチンを選択すると モードと ルーチンが選択できます。 ルーチンの選択肢は、テキスト付きのルーチン1つのパネルか、テキスト無しのルーチン2つのパネルが選択できるんです。 二つ並べることでスペースが節約できるんですが、今回のはそれ以外の目的でルーチン2つのパネルを使います。 と言うのも、Smart Thingsに登録された我が家のデバイスは、実際にはデバイスではなく、+Styleのアプリで設定しているシーンなんですよ。  なので、リビングの照明が、照明を点灯(全灯リビング)と消灯(消灯リビング)の2つのデバイスとして登録されているんです。ややこしいですが目的は果たせるので良しとしてます。 この想定とは少し違うSmart Thingsへの登録を生かすために、オンとオフを並べたパネルにしました。  ルーチン2つのパネルを配置すると、中に並べるルーチンを選択します。 ここでオンとオフの両方を選択すると、 オンとオフが横並びのパネルが配置できます。ちなみに、選択した順番で左から並ぶようです。 表示されるアイコンもルーチンに設定したアイコンが表示されるので分かりやすいですね。もちろん、判りやすいアイコンにしておく必要がありますけどね。 ちなみに、スマホのスマッチアプリでは、ルーチンに設定したアイコンでは表示されないので、スマホのアプリで順番の並び替えとかするのは困難を極めます。    +StyleのデバイスやシーンはGoogleホームとも連携できるので、「OK Google」でGoogleアシスタント経由で操作できるんですが、今はGeminiをデフォルトアシスタントにしていて...