SL4A - 探索 Android API



SL4A 基於外觀設計模式與底層的 Android API 通訊。本章解釋了外觀設計模式的工作原理以及不同的 SL4A API 外觀。

什麼是外觀設計模式?

外觀是一個物件,它提供一個介面來簡化對應用程式中相關介面的訪問。換句話說,外觀將庫的工作與客戶端隔離開來,並充當每個子系統級別的入口點。因此,客戶端僅透過其外觀進行通訊。下圖說明了這一點。

Facade Design Pattern

SL4A 和 Android API 外觀

SL4A 為其支援的每種語言託管直譯器。直譯器透過稱為外觀的介面訪問底層 Android API。

下表列出了頂級外觀及其提供的功能 -

序號 Android API 外觀及說明
1

ActivityResultFacade

它設定指令碼如何將資訊作為活動返回。此方法意味著您的指令碼將返回某種結果。結果型別可以設定為 RESULT_CANCELED(0) 或 RESULT_OK(-1)

2

AndroidFacade

它提供對常見 Android 功能的訪問,例如讀取輸入、通知、啟動應用程式元件等。

3

ApplicationManagerFacade

列出所有可用和正在執行的包,啟動活動,建立您的任務管理器或終止特定的一組包。

4

BatteryManagerFacade

公開電池管理器並允許跟蹤電池狀態、健康狀況、型別級別、電壓等。

5

BluetoothFacade

提供對藍牙功能的訪問,從基本連線功能到傳送和接收 ASCII 和二進位制資料。此外觀至少需要 API 級別 5。

6

CameraFacade

此方法提供對所有與相機相關的功能的訪問。允許使用裝置的相機拍照並將其儲存到指定的路徑。它提供兩個函式,即 cameraCapturePicture 和 cameraInteractiveCapturePicture。這些函式嚴格用於使用裝置背面的鏡頭。

7

CommonIntentsFacade

提供對常見 Android Intent 的訪問,例如開啟聯絡人列表、進行地圖搜尋、透過操作啟動活動等。

8

ContactsFacade

允許訪問聯絡人,例如提供聯絡人列表以選擇聯絡人、按屬性查詢聯絡人列表以及獲取所有聯絡人的列表及其 ID 和屬性。外觀提供的一些方法包括 contactsGet、pickContact、contactsGetById 等。

9

EventFacade

Android 作業系統維護一個事件佇列,用於在應用程式之間非同步傳遞資訊。此外觀提供管理事件佇列的功能,例如清除現有事件、釋出新事件、列出、註冊和登出廣播訊號等。方法示例包括 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。

16

SensorManagerFacade

允許跟蹤感測器資料,例如光線、加速度、磁場和方向。要啟動/停止感測,請使用 startSensing(已棄用,並由 SL4r4 中的 startSensingThreshold 和 startSensingTimed 替換)和 stopSensing 函式呼叫。readSensors、sensorsGetLight、sensorsReadAccelerometer、sensorsReadMagnetometer 和 sensorsReadOrientation 是此外觀提供的函式。

17

SettingsFacade

提供對不同電話設定的訪問,例如鈴聲音量、螢幕亮度、飛航模式、振動、媒體音量等。此外觀提供的函式有 checkAirplaneMode、checkRingersilentMode 和 checkScreenOn(至少 API 級別 7)、getVibrateMode、setScreenTimeout、toggleVibrateMode setRingerVolume 等。

18

SignalStrengthFacade

允許監控手機訊號強度。呼叫 startTrackingSignalStrengths 函式以開始收集資料。呼叫 readSignalStrengths 函式以開始收集資料。要關閉該過程,請呼叫 stoptrackingSignalStrengths 函式。它至少需要 API 級別 7。

19

SmsFacade

它具有刪除、讀取、標記和傳送簡訊的功能。此外觀提供的一些函式示例包括 smsMarkMessageRead、smsDeleteMessage、smsSend 等。

20

SpeechRecognitionFacade

能夠向指令碼新增語音識別功能。它只有一個名為 recognizeSpeech 的函式。

21

TextToSpeechFacade

為 API4 及更高版本提供 TTS 服務。要讓裝置說話,請使用 ttsSpeak 函式。要確定 speak 函式是否已完成,請使用 ttsIsSpeaking 函式。

22

ToneGeneratorFacade

為給定數字生成 DTMF 音調。要使用它,您必須呼叫 generateDtmfTones 函式。

23

UiFacade

提供用於建立使用者介面元素的功能,例如文字框、複選框、日期選擇器等。它還允許互動式使用 HTML 頁面。

24

WakeLockFacade

提供建立喚醒鎖的功能,包括 wakeLockAcquireBright、wakeLockAcquireDim、wakeLockAcquireFull 和 wakelockAcquirePartial。

25

WebCamFacade

此外觀至少需要 API 級別 8。它允許將 MJPEG 流從前置裝置攝像頭流式傳輸到網路。要啟動/停止網路攝像頭,請分別使用 webcamStart 和 webcamStop 函式。要調整流式傳輸時影片的質量,請使用 webcamAdjustQuality 函式。

26

WifiFacade

幫助您控制裝置上的 Wi-Fi 無線電。它允許指令碼查詢 Wi-Fi 連線的狀態、搜尋接入點、連線和斷開 WiFi 網路以及在指令碼執行期間保持 Wi-Fi 鎖定。

有關這些外觀提供的所有方法的完整列表,請參閱 https://code.google.com。後續章節將說明如何使用 Android 外觀 API 函式建立實用程式。

廣告