Sl4a-background-scripting-with-python

提供:Dev Guides
移動先:案内検索

SL4A-Pythonを使用したバックグラウンドスクリプト

サービスはコンポーネントであり、ユーザーと直接対話することなくバックグラウンドで実行されます。 UI(ユーザーインターフェイス)はありません。 アプリケーションが破壊された場合でも、サービスはバックグラウンドで無期限に実行されます。

この章では、バックグラウンドで特定のタスクを実行するスクリプトの記述について説明します。

バックグラウンドタスク

SL4Aを使用すると、スクリプトを端末またはバックグラウンドで実行できます。 バックグラウンドでスクリプトを起動するには、歯車のようなアイコンを選択します。 スクリプトはバックグラウンドで無限に実行されます。 ただし、そのようなサービスを明示的にシャットダウンすることもできます。

起動スクリプトで起動

これらのスクリプトは、デバイスが起動するたびに起動されます。 起動時に起動設定画面は、デバイスの起動設定を指定できるアプリケーションです。 このユーティリティは、マスタースクリプトを介した複数のスクリプトの実行をサポートしています。 マスタースクリプトは他のスクリプトを起動します。

トリガー

トリガーは、アクション/イベントに応じて実行する必要がある一連のアクションを定義します。 トリガーは追加および削除できます。/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時間形式を使用する必要があります。 例には、アラーム、リマインダーなどを設定するスクリプトが含まれます。 時間ベースのトリガーとは対照的に、経過時間ベースのトリガーは、経過時間後にスクリプトを実行します。 アラームアプリケーションのスヌーズオプションは、この概念に基づいています。

経過時間ベースのトリガー