SL4A-AndroidAPIの調査
SL4Aは、基盤となるAndroidAPIと通信するためのファサードデザインパターンに基づいています。この章では、ファサードデザインパターンとさまざまなSL4AAPIファサードの動作について説明します。
ファサードデザインパターンとは何ですか?
ファサードは、アプリケーション内の関連するインターフェイスへのアクセスを簡素化するインターフェイスを提供するオブジェクトです。言い換えると、ファサードはライブラリの動作をクライアントから隔離し、各サブシステムレベルへのエントリポイントとして機能します。したがって、クライアントはファサードを介してのみ通信します。次の図は同じことを説明しています。

SL4AおよびAndroidAPIファサード
SL4Aは、サポートする各言語のインタープリターをホストします。インタプリタは、ファサードと呼ばれるインターフェースを介して、基盤となるAndroidAPIにアクセスします。
次の表に、トップレベルのファサードとそれらが提供する機能を示します。
S.No. | AndroidAPIのファサードと説明 |
---|---|
1 | ActivityResultFacade スクリプトが情報をアクティビティとして返す方法を設定します。このメソッドは、スクリプトが何らかの結果を返すことを意味します。結果タイプは、RESULT_CANCELED(0)またはRESULT_OK(-1)のいずれかに設定できます。 |
2 | AndroidFacade 入力の読み取り、通知、アプリケーションコンポーネントの起動などの一般的なAndroid機能へのアクセスを提供します。 |
3 | ApplicationManagerFacade 使用可能な実行中のパッケージをすべて一覧表示し、アクティビティを起動し、タスクマネージャーを作成するか、特定のパッケージセットを終了します。 |
4 | BatteryManagerFacade バッテリーマネージャーを公開し、バッテリーの状態、状態、タイプレベル、電圧などを追跡できるようにします。 |
5 | BluetoothFacade 基本的な接続機能からASCIIデータとバイナリデータの両方の送受信まで、Bluetooth機能へのアクセスを提供します。このファサードには、少なくともAPIレベル5が必要です。 |
6 | CameraFacade このメソッドは、すべてのカメラ関連機能へのアクセスを提供します。デバイスのカメラを使用して写真を撮り、指定したパスに保存できます。それは2つの機能、すなわちcameraCapturePictureとcameraInteractiveCapturePictureを提供します。これらの機能は、デバイスの背面にあるレンズを使用するためのものです。 |
7 | CommonIntentsFacade 連絡先のリストを開く、地図検索を行う、アクションごとにアクティビティを開始するなど、一般的なAndroidインテントへのアクセスを提供します。 |
8 | ContactsFacade 連絡先を選択するための連絡先リストの提供、属性による連絡先リストのクエリ、IDと属性を持つすべての連絡先のリストの取得などの連絡先へのアクセスを許可します。ファサードによって提供されるいくつかのメソッドには、contactsGet、pickContact、contactsGetByIdなどが含まれます。 |
9 | EventFacade Android OSは、アプリケーション間で情報を非同期的に渡すためのイベントキューを維持します。このファサードは、既存のイベントのクリア、新しいイベントの投稿、ブロードキャスト信号の一覧表示、登録、登録解除などのイベントキューを管理する機能を提供します。メソッドの例には、eventPost、eventClearBufferなどがあります。 |
10 | EyesFreeFacade APIレベル4未満のデバイスで使用できます。これにより、スクリプトはテキスト読み上げテクノロジーを使用して話すことができます。このファサードは、TextToSpeechFacadeに置き換えられました。使用可能な関数はttsSpeakのみです。 |
11 | LocationFacade GPSまたは現在使用しているセルタワーの情報を使用して現在地を追跡できる機能を提供します。この機能を使用するには、実際のルックアップを実行するためにアクティブなインターネット接続が必要です。ファサードは、getLastKnownLocation、startLocating、stopLocating、readLocationなどのメソッドを提供します。 |
12 | MediaPlayerFacade メディアファイルの再生、メディアプレーヤーの制御、メディアプレーヤーの現在のステータスの照会、およびメディアファイルに関する情報の取得を許可します。mediaIsPlaying、mediaPlayInfo、mediaPlayListは、メディアプレーヤーの現在の状態を返します。startActivity関数を呼び出すと、メディアプレーヤーが起動します。mediaPlay、mediaPlayPause、mediaPlayClose、mediaPlaySeek、mediaPlayStart、mediaPlaySetLoopingなどの機能は、メディアプレーヤーを制御するために使用されます。 |
13 | MediaRecorderFacade このファサードは、オーディオおよびビデオの記録機能を提供します。startInteractiveVideoRecording、recorderStartMicrophone、recorderCaptureVideo関数は、それぞれオーディオ/ビデオ録画を起動および開始するために使用されます。以前に開始した録音を終了するには、recorderStop関数を呼び出します。 |
14 | PhoneFacade 電話の状態の追跡、ローミングステータス、通話の開始、SIM情報などの基本的な電話操作をプログラムで利用できるようにします。メソッドの例には、phoneCallNumber、phoneDialNumber、getCellLocationなどがあります。 |
15 | PreferencesFacade 既存の設定のリストの取得や、新しい設定の読み取り、変更、追加などの共有設定へのアクセスを許可します。SL4A r4リリースでサポートされている関数は、prefGetAll、prefGetValue、およびprefPutValueの3つです。 |
16 | SensorManagerFacade 光、加速度、磁場、向きなどのセンサーデータを追跡できます。センシングを開始/停止するには、startSensing(廃止され、SL4r4によってstartSensingThresholdおよびstartSensingTimedに置き換えられました)およびstopSensing関数呼び出しを使用します。readSensors、sensorsGetLight、sensorsReadAccelerometer、sensorsReadMagnetometer、sensorsReadOrientationは、このファサードによって提供される関数です。 |
17 | SettingsFacade 呼び出し音の音量、画面の明るさ、機内モード、バイブレーション、メディアの音量など、さまざまな電話設定へのアクセスを提供します。このファサードが提供する機能は、checkAirplaneMode、checkRingersilentMode、checkScreenOn(少なくともAPIレベル7)、getVibrateMode、setScreenTimeout、toggleVibrateModesetRingerVolumeなどです。 |
18 | SignalStrengthFacade 電話の信号強度を監視できます。startTrackingSignalStrengths関数を呼び出して、データの収集を開始します。readSignalStrengths関数を呼び出して、データの収集を開始します。プロセスをシャットダウンするには、stoptrackingSignalStrengths関数を呼び出します。少なくともAPIレベル7が必要です。 |
19 | SmsFacade SMSメッセージの削除、読み取り、マーキング、送信の機能があります。このファサードによって提供される関数の例には、smsMarkMessageRead、smsDeleteMessage、smsSendなどがあります。 |
20 | SpeechRecognitionFacade スクリプトに音声認識機能を追加できるようにします。これには、recognizeSpeechという名前の関数が1つだけあります。 |
21 | TextToSpeechFacade API4以降のTTSサービスを提供します。デバイスに発言させるには、ttsSpeak関数を使用します。話す機能が完了したかどうかを判断するには、ttsIsSpeaking関数を使用します。 |
22 | ToneGeneratorFacade 指定されたディジットのDTMFトーンを生成します。これを使用するには、generateDtmfTones関数を呼び出す必要があります。 |
23 | UiFacade テキストボックス、チェックボックス、日付ピッカーなどのユーザーインターフェイス要素を作成するための関数を提供します。また、HTMLページのインタラクティブな使用を可能にします。 |
24 | WakeLockFacade wakeLockAcquireBright、wakeLockAcquireDim、wakeLockAcquireFull、wakelockAcquirePartialなどのウェイクロックを作成するための関数を提供します。 |
25 | WebCamFacade このファサードには、少なくともAPIレベル8が必要です。これにより、正面を向いたデバイスのカメラからネットワークにMJPEGストリームをストリーミングできます。Webカメラを開始/停止するには、それぞれwebcamStart関数とwebcamStop関数を使用します。ストリーミング中にビデオの品質を調整するには、webcamAdjustQuality関数を使用します。 |
26 | WifiFacade デバイスのWi-Fi無線を制御するのに役立ちます。これにより、スクリプトはWi-Fi接続のステータスを照会し、アクセスポイントを検索し、WiFiネットワークに接続および切断し、スクリプトの実行中にWi-Fiロックを保持できます。 |
参照 https://code.google.comこれらのファサードによって提供されるメソッドの完全なリストについては。以降の章では、AndroidFaçadeAPI関数を使用してユーティリティを作成する方法を説明します。