端末の現在の日時に関する機能

yamachan

New member
端末の現在の日時を決まった数値で増減させる機能が欲しい
例えば、フローティングアイコンをタップすると、現在の日付を一日進めるなど。
現状の機能で再現できるのかは、私はこのアプリを使用開始して間もないのでわかっていません。
 

JA-Translator

Moderator
端末の現在の日時を決まった数値で増減させる機能が欲しい
例えば、フローティングアイコンをタップすると、現在の日付を一日進めるなど。

はい!そのような「何をどうする」という動作は自分でマクロを組みます。
自分でマクロ(動作)を組んで実装できるのがMacroDroidアプリのイイところ。

マクロ構成は、ずばり!ご自身が述べているとおり、そのまんまです。(y)
  • トリガー: フローティングボタンを押す
  • アクション: システムの時刻を変更する。
アクションについて詳しくステップを見ると、
1.「現在時刻」を取得して変数に保存しておく
2.その変数値に「+1日」した値で更新する。
3.「システムの日時」を上記2の値に変更する

・現在時刻をマジックテキスト(自動取得)でシリアル値で取得できます。
・1日の秒数(86400秒=60 x 60 x 24)を、そのシリアル値(現在時刻)に加算する。
・アクション「システム設定」の「Global」あたりのどっか、にそのシリアル値を設定する。

macro.png


SetTimeVarible.png
SystemSetting2.png


問題は・・・
アクションの「システム設定」ですが、どこに設定するのだろう?

通常、時刻設定は自動取得で使うのが一般的です。
システム設定の「auto_time」は「時刻の自動同期」に関する設定です。
それを無効にして、代わりに、どっかに手動で設定すれば、できるはず・・・

【Android】時刻を変更する - adb shell date 🔗

ADBを使えば出来るのは確実です。
やっぱりADBなしでは無理かしら?

私は詳しくないので・・・

もっとシステムに詳しいマニアックな方に聞くといいかもしれません。

では、叫びましょう!
「誰か詳しい人、教えてくださーい!」

これで祈りましょう、アーメン🙏😇

私はこのアプリを使用開始して間もないので

きっとハマリますよー!(笑)
ゲームのパズルしてるみたいに。

なお、「マクロを組みたい!どうするの?」は一般ヘルプのコーナーが最適なので移動しておきますね。
 

yamachan

New member
はい!そのような「何をどうする」という動作は自分でマクロを組みます。
自分でマクロ(動作)を組んで実装できるのがMacroDroidアプリのイイところ。

マクロ構成は、ずばり!ご自身が述べているとおり、そのまんまです。(y)
  • トリガー: フローティングボタンを押す
  • アクション: システムの時刻を変更する。
アクションについて詳しくステップを見ると、
1.「現在時刻」を取得して変数に保存しておく
2.その変数値に「+1日」した値で更新する。
3.「システムの日時」を上記2の値に変更する

・現在時刻をマジックテキスト(自動取得)でシリアル値で取得できます。
・1日の秒数(86400秒=60 x 60 x 24)を、そのシリアル値(現在時刻)に加算する。
・アクション「システム設定」の「Global」あたりのどっか、にそのシリアル値を設定する。

View attachment 3217
View attachment 3218

View attachment 3219

問題は・・・
アクションの「システム設定」ですが、どこに設定するのだろう?

通常、時刻設定は自動取得で使うのが一般的です。
システム設定の「auto_time」は「時刻の自動同期」に関する設定です。
それを無効にして、代わりに、どっかに手動で設定すれば、できるはず・・・

【Android】時刻を変更する - adb shell date 🔗

ADBを使えば出来るのは確実です。
やっぱりADBなしでは無理かしら?

私は詳しくないので・・・

もっとシステムに詳しいマニアックな方に聞くといいかもしれません。

では、叫びましょう!
「誰か詳しい人、教えてくださーい!」

これで祈りましょう、アーメン🙏😇



きっとハマリますよー!(笑)
ゲームのパズルしてるみたいに。

なお、「マクロを組みたい!どうするの?」は一般ヘルプのコーナーが最適なので移動しておきますね。
詳しくありがとうございます。
もう少し弄ってみます。
 

JA-Translator

Moderator
I think it should be possible using the shell script action with the rooted option, using a command like: adb shell "date `date +%m%d%H%M%Y.%S`"

英語フォーラムでお話してたのですね。

なるほど。シェルスクリプトで出来るかも、と回答が付いてましたね。

やはり、ルート化かADBが必要みたいですね?
 

Dimlos

Well-known member
残念ですがroot化していないと無理です、adbでも権限が足りないので反映されないはずです。
 

yamachan

New member
残念ですがroot化していないと無理です、adbでも権限が足りないので反映されないはずです。
端末はroot化しているのですが、肝心の変数等の扱いに慣れてなくて、未だに実現できずにいます。
root化+adbコマンドならば、MacroDroidを使わずにできてしまうのと、PCとの接続が必須になってしまうため、どうにかMacroDroid単体で実現できないのかなと。
 

LinerSeven

Active member
端末はroot化しているのですが、肝心の変数等の扱いに慣れてなくて、未だに実現できずにいます。
root化+adbコマンドならば、MacroDroidを使わずにできてしまうのと、PCとの接続が必須になってしまうため、どうにかMacroDroid単体で実現できないのかなと。
yamachanさん、こんにちわ。

端末側でRootを取得されている、とのことですので、date -sコマンドで、システム時刻の変更が出来ないでしょうか?

手元にルート環境が今ないので、最後のシェルスクリプトアクションのみ予測で作っていますが

こちらにサンプルをアップロードしました。
*ルート必須です。理由はディムロスさんの指摘通りシステム時刻を弄るコマンドは、ルート権限を必要とするためですね。

宜しければお試し下さい。

ちなみにですが、時間を戻すときにはNTPなり、端末自体の時刻同期をするのが、変なコマンドを考えなくてよいので楽なはずです…

以上です。
宜しくお願い申し上げます。
 

yamachan

New member
yamachanさん、こんにちわ。

端末側でRootを取得されている、とのことですので、date -sコマンドで、システム時刻の変更が出来ないでしょうか?

手元にルート環境が今ないので、最後のシェルスクリプトアクションのみ予測で作っていますが

こちらにサンプルをアップロードしました。
*ルート必須です。理由はディムロスさんの指摘通りシステム時刻を弄るコマンドは、ルート権限を必要とするためですね。

宜しければお試し下さい。

ちなみにですが、時間を戻すときにはNTPなり、端末自体の時刻同期をするのが、変なコマンドを考えなくてよいので楽なはずです…

以上です。
宜しくお願い申し上げます。
ご丁寧にありがとうございます。
私の端末ではそのままでは動作しませんでした。
ですが、参考にして試行錯誤してみようと思います。
 

Dimlos

Well-known member
root端末を用意できましたので完成度は@LinerSevenに劣りますがなんとか動くものを作れたと思います。端末のネットワーク時間を利用するやネットワークから提供されたタイムゾーンの使用を止めてから試してください。

ユーザー変数のAdditionに増減させたい数値(進めるなら数字、戻すなら-数字)を設定してマクロを試すとちょっと待たされますが日付が変更されると思います。

とりあえず日付だけ動きますがエラー制御も何もしていないのでこれをベースに改良される事をオススメします。

※アップしていたマクロに致命的な間違いを発見したので差し替えました、ユーザー変数のAdditionまで初期化していたので今日の日付から動かないマクロになっていました。私のマクロは日付の概念ではなくただ数字として加減していますので月跨ぎなどは対応できないのであくまでサンプルとしてお考え下さい。
 

Attachments

  • Set_System_Date.macro
    4.2 KB · Views: 11
Last edited:

LinerSeven

Active member
シェルスクリプトのアクションがdate --s
になっていましたので、正しくはdate -sですね。(ハイフンがひとつ多かったです。ごめんなさい。)

マクロサンプルの間違い箇所を修正しておきましたので、宜しければ、お手数ではありますが再度お試し頂ければと存じます。

うまくいけば、1日先の日付に進むかと…
 

Dimlos

Well-known member
マクロサンプルの間違い箇所を修正しておきましたので、宜しければ、お手数ではありますが再度お試し頂ければと存じます。
残念ですがShellScriptResultsにdate: Unknown option 's' (see "date --help")となり動きません。
ネットで数多くのsオプションの文献を読みましたが私の試した限りではこのオプションは有効では無いようです。
 

LinerSeven

Active member
残念ですがShellScriptResultsにdate: Unknown option 's' (see "date --help")となり動きません。
ネットで数多くのsオプションの文献を読みましたが私の試した限りではこのオプションは有効では無いようです。
ディムロスさんのおっしゃる通りで、ヘルプを見るとToolbox関数のdateコマンドでは、通常Linuxで実装されている -sや--setがないですね。失礼しました。

ちなみにですが、
date SET "2022/08/17 17:39:56"
このコマンドはルート端末で、通りますか?

date分の発行だけだと、端末の時間は変わらないはずで、かつ、普遍的なAndroid端末のdateコマンドで許されているオプションだと、SETしか無さそうなのですが…
 

Dimlos

Well-known member
とりあえず自分の環境では自分のマクロで変更されました。

今出勤中でroot端末も家なので帰宅後環境が整ったら検証してみますね。
 

LinerSeven

Active member
確認してみたところ、Android端末での日付設定は@Dimlosさんのシェルスクリプト呼び出し方法が最良のようです。

スレ汚し失礼しました。
 

Dimlos

Well-known member
確認してみたところ、Android端末での日付設定は@Dimlosさんのシェルスクリプト呼び出し方法が最良のようです。
協力して1つのハードルを乗り越えられたことを嬉しく思います。
 

LinerSeven

Active member
追記

マクロのサンプルを差し替えました。

ディムロスさんのマクロがヒントになったのですが、

ルートを取っていれば

date @シリアル値

で時間が変えられるので、

Macrodroidのマジックテキストに存在しているシリアル値のマジックテキストで、
種になるシリアル値を算出したのち

(時間*3600秒)

のずらし用シリアル値を加減算、

加減算したシリアル値を

date @xxxxxxxx

と、@のあとにシリアル値、もしくはシリアル値を格納した変数を指定してやれば、
たくさん変数を使わなくても時間のコントロールができることがわかりました。

あと、時間を正常にもどす際は、
設定>システム>日付と時刻>ネットワーク時刻を使用する

のチェックをオフオンするとNTPが走り、時刻同期がなされて正常な時間に補正されますので楽が出来ますね。


勉強させて頂きました。
ありがとうございました。
 

yamachan

New member
root端末を用意できましたので完成度は@LinerSevenに劣りますがなんとか動くものを作れたと思います。端末のネットワーク時間を利用するやネットワークから提供されたタイムゾーンの使用を止めてから試してください。

ユーザー変数のAdditionに増減させたい数値(進めるなら数字、戻すなら-数字)を設定してマクロを試すとちょっと待たされますが日付が変更されると思います。

とりあえず日付だけ動きますがエラー制御も何もしていないのでこれをベースに改良される事をオススメします。

※アップしていたマクロに致命的な間違いを発見したので差し替えました、ユーザー変数のAdditionまで初期化していたので今日の日付から動かないマクロになっていました。私のマクロは日付の概念ではなくただ数字として加減していますので月跨ぎなどは対応できないのであくまでサンプルとしてお考え下さい。
追記

マクロのサンプルを差し替えました。

ディムロスさんのマクロがヒントになったのですが、

ルートを取っていれば

date @シリアル値

で時間が変えられるので、

Macrodroidのマジックテキストに存在しているシリアル値のマジックテキストで、
種になるシリアル値を算出したのち

(時間*3600秒)

のずらし用シリアル値を加減算、

加減算したシリアル値を

date @xxxxxxxx

と、@のあとにシリアル値、もしくはシリアル値を格納した変数を指定してやれば、
たくさん変数を使わなくても時間のコントロールができることがわかりました。

あと、時間を正常にもどす際は、
設定>システム>日付と時刻>ネットワーク時刻を使用する

のチェックをオフオンするとNTPが走り、時刻同期がなされて正常な時間に補正されますので楽が出来ますね。


勉強させて頂きました。
ありがとうございました。
お二方、ありがとうございます。
こちらの端末で、動作することを確認いたしました。
コマンド等は非常に参考になるもので、これから色々弄るのが楽しみになりました。
 

yamachan

New member
追加で質問なのですが
例えば、一つのフローティングボタンで、押すたびに進める、戻すを繰り返すことも可能でしょうか?
 
Top