【Taskerの使い方】【設定例12】「日の入り」から「日の出」までの時間帯をダークモードに設定する方法
【Android 10+】で、ダークモード機能が新しく登場しました。
ダークモードの適用時間(スケジュール)を設定できる機種もあれば、単に「on/off」の切替しかできない機種もあるようです。
(「日の入り」から「日の出」までの設定ができる機種例)
・Google Pixel 3XL
・Galaxy A30
等
(設定できない機種例)
・OPPO Rano3 A ※時間帯指定は可能
・AQUOS Sense 3
・HUAWEI Mate 10 Pro
等
設定ができない機種においても、自動実行アプリ「Tasker」を利用することで、「日の入り」から「日の出」までの時間帯をダークモードに設定することができます。
※自動実行アプリ「Tasker」については、こちらを参照してください。
【自動実行アプリ「Tasker」の使い方】1.概要-「Tasker」でどんなことができるの?
おおまかな流れは
・現在地の「日の出」「日の入り」の時刻を取得する
・「Time」イベントを使って、「日の入り」から「日の出」までの時間帯をダークモードにする
になります。
1.「日の出」と「日の入り」の時刻を取得する
この中で、一番厄介なのが、「日の出」と「日の入り」の時刻を取得することですが、下記URLで、無料のAPIを提供されているので、これを利用することにします。
https://sunrise-sunset.org/api
1)リクエストに必要なデータ
パラメータとサンプルリクエストをみると、必要なデータは
・経度と緯度
・日付(省略すると今日)
です。
2)レスポンス
レスポンスには、「日の出」と「日の入り」の時刻以外のデータも提供されますが、ここで必要なのは、1番目の「日の出」時刻と、2番目の「日の入り」時刻です。
時刻は、UTC(Coordinated Universal Time)で提供されているので、日本ですと「+9」時間が必要です。
では、実際に「Tasker」を使って、「日の出」と「日の入り」の時刻を取得したいと思います。
3)現在地の「緯度」と「経度」を取得します。
・アクション「Get Location」を使って、「緯度」と「経度」を取得します。
・「Get Location」で取得したグローバル変数「%LOCN」には、『緯度,経度』とデータが格納されているので、アクション「Get Split」使って、『緯度』と『経度』に分解します。
4)APIのリクエストをします。
・パラメータデータ『lat緯度=&lng=経度』を作成します。
・アクション「HTTP Request」を使って、https://api.sunrise-sunset.org/jsonにリクエストします。
5)レスポンスから「日の出」と「日の入り」の時刻を取り出します。
アクション「JavaScriptlet」を使って、レスポンスデータJSONから「日の出」と「日の入り」の時刻を取り出します。
・レスポンスデータを格納する
・時刻の分解して、日本の時刻に変換する
・時刻を再設定する
【使っている「JavaScript」の知識】
・const:変数を宣言(再宣言NG、再代入NG)
・var:変数を宣言(再宣言OK、再代入OK)
・JSON.parse:JSON形式で書かれた文字列をJavaScriptのJSONオブジェクトに変換するメソッド
・substring:文字列の一部を切り出すメソッド※文字列.substring(開始インデックス,終了インデックス)
(注意)演算子「+」:文字列 + 数値 は文字列(連結)になってしまいます。
6)ユーザー定義変数にセットして確認
7)まとめ(Task「Sunrise Sunset」)
実行して、「日の入り」「日の出」の時刻が正しいことと、ユーザー定義変数がセットされていることを確認します。
2.「日の入り」から「日の出」までの時間帯をダークモードにする「Time」イベントの作成
1)「Time」イベントの開始および終了時刻の設定
①「PROFILES」タブ画面で、
②「+」をタップして
③表示された「Time」イベントをタップします。
④【Time Edit】画面になるので、Fromの④をタップして
⑤をタップします。
⑥変数の選択画面になるので、「%Sunset」をタップします。
⑦同様に、Toの⑧をタップして、
⑨変数の選択画面で、「%Sunrise」をタップします。
⑩戻る(←)をタップします。
2)開始時のTaskを設定
イベントが開始したときに、ダークモードを有効にするTaskを設定します。
①「PROFILES」タブ画面に戻って、開始時のTaskの設定を求められるので、「New Task」をタップします。
②Taskの名前は付けずに、「レ」をタップします。
③【Task Edit】画面になるので、「+」をタップします。
④【Action】の選択画面になるので、「Display」をタップします。
⑤【Display Action】の選択画面になるので、「Dark Mode」をタップします。
⑥「Dark Mode」の【Action Edit】画面で、「On」を選択して、
⑦戻る(←)をタップします。
⑧【Task Edit】画面に戻るので、「Dark Mode」アクションを確認して、戻る(←)をタップします。
⑨「PROFILES」タブ画面に、開始時のTask「Dark Mode On」が表示されています。
3)終了時のTaskを設定
イベントが終了したときに、ダークモードを無効にして、「日の入り」「日の出」の時刻を更新します。
①「PROFILES」タブ画面で、開始時のTask「Dark Mode On」上を長押しします。
②表示された「Add Exit Task」をタップします。
③「New Task」をタップします。
④Taskの名前は付けずに、「レ」をタップします。
⑤【Action】の選択画面になるので、「Display」をタップします。
⑥【Display Action】の選択画面になるので、「Dark Mode」をタップします。
⑦「Dark Mode」の【Action Edit】画面で、「Off」を選択して、
⑧戻る(←)をタップします。
⑨【Task Edit】画面に戻るので、「+」をタップします。
⑩【Action】の選択画面になるので、「Task」をタップします。
⑪【Task Action】の選択画面になるので、「Perform Task」をタップします。
⑫「Perform Task」の【Action Edit】画面で、虫眼鏡アイコンをタップします。
⑬【Task】の選択画面が表示されるので、1.で作成した「Sunrise Sunset」タスクをタップします。
⑭戻る(←)をタップします。
⑮【Task Edit】画面に戻るので、「Perform Task」アクションを確認して、戻る(←)をタップします。
⑯「PROFILES」タブ画面に、終了時のタスクが表示されています。