【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」タブ画面に、終了時のタスクが表示されています。

【Tasker(タスカー)の使い方】目次

1.概要
2.メイン画面
3.設定
4.State Context(ステートコンテキスト)
5.Event Context(イベントコンテキスト)
6.Action(アクション)
7.変数
8.Scene(シーン)
9.Element(エレメント)

■日本語化できます。

Taskerデータの共有とインポート※Ver.5.5

【更新履歴】
・2017/4/9 公開
・2017/8/10 Ver.5.0に対応
★Ver.5の変更点(2017/7/27)


【設定例】
【例1】ヘッドセットを差し込んだら自動的に音楽系アプリ起動
【例2】自宅に居ることを判定する方法
【例3】特定のアプリにロックを掛ける方法
【例4】メールを自動送信する方法
【例5】電話着信時に、その端末以外に着信を連携する方法
【例6】ハードキーをタップして、スクリーンショットを撮る方法
【例7】「クイック設定パネル」のカスタマイズ
【例8】「ショートカット」の作り方「アプリショートカット」のカスタマイズ
【例9】自動ロックまでの時間設定―新機能「Custom Setting」の使用例(※Ver.5.2)
【例10】ダークモード適用と同時に壁紙も変更する(Ver.5.8.5)
【例11】電源ボタンメニューからタスクを実行する(Ver.5.10)
【例12】「日の入り」から「日の出」までの時間帯をダークモードに設定する方法

-Tasker
-, , ,