SL4A-Pythonを使用したバックグラウンドスクリプト
サービスは、ユーザーと直接対話することなく、バックグラウンドで実行されるコンポーネントです。UI(ユーザーインターフェイス)はありません。アプリケーションが破棄された場合でも、サービスはバックグラウンドで無期限に実行されます。
この章では、バックグラウンドで特定のタスクを実行するスクリプトの記述について説明します。
バックグラウンドタスク
SL4Aを使用すると、スクリプトを端末またはバックグラウンドで実行できます。バックグラウンドでスクリプトを起動するには、歯車のようなアイコンを選択します。スクリプトはバックグラウンドで無限に実行されます。ただし、そのようなサービスを明示的にシャットダウンすることを選択することもできます。
ブートスクリプトで起動
これらのスクリプトは、デバイスが起動するたびに起動されます。Launch on Boot設定画面は、デバイスの起動設定を指定できるアプリケーションです。ユーティリティは、マスタースクリプトを介した複数のスクリプトの実行をサポートします。マスタースクリプトは他のスクリプトを起動します。
トリガー
トリガーは、アクション/イベントに応答して実行する必要がある一連のアクションを定義します。トリガーは追加および削除できます。/ sdcard / sl4a / scriptsディレクトリでは、イベントがトリガーされたときに実行するスクリプトを選択できます。スクリプトをトリガーする可能性のあるオプションのリストには、バッテリー、場所、電話、センサー、信号強度が含まれます。
オリエンテーションベースのアクション
SL4Aを使用すると、デバイスの向きと動きに応じてスクリプトを実行できます。startSensingTimedAPIは、デバイスの向きと動きを決定するために使用されます。
次のスニペットは、TTS機能を使用して、電話が裏向きに置かれたときにユーザーに通知します-
import android,time
droid = android.Android()
droid.startSensing()
while True:
res = droid.sensorsGetLight().result
if res is not None and res <=10:
droid.ttsSpeak("Device faced down!!")
time.sleep(5)
ロケーションベースのアクション
図書館、教会はあなたが頻繁に訪れるかもしれない場所であり、あなたがそこにいるときあなたは間違いなくあなたの電話を沈黙させたいです。SL4Aを使用すると、現在地を追跡して特定のアクションを実行するスクリプトを作成できます。
時間ベース/経過時間ベースのトリガー
これらのトリガーは、特定の時刻にアクションを実行するために使用されます。時刻の指定には、24時間形式を使用する必要があります。例には、アラーム、リマインダーなどを設定するスクリプトが含まれます。時間ベースのトリガーとは異なり、経過時間ベースのトリガーは、経過時間の後にスクリプトを実行します。アラームアプリケーションのスヌーズオプションは、この概念に基づいています。