
- SL4A 教程
- SL4A - 首頁
- SL4A - Android 概述
- SL4A - Android 架構
- SL4A - Android 的指令碼層
- SL4A - 架構
- SL4A - Python 庫
- SL4A - 開發環境
- SL4A - 配置您的裝置
- SL4A - 瀏覽 Android SDK
- SL4A - 使用 Eclipse
- SL4A - 探索 Android API
- SL4A - 構建 GUI
- SL4A - 使用 Python Facades 的實用程式
- SL4A - 使用 Python 的後臺指令碼
- SL4A - 打包和分發
- SL4A 有用資源
- SL4A - 快速指南
- SL4A - 有用資源
- SL4A - 討論
SL4A - 探索 Android API
SL4A 基於外觀設計模式與底層的 Android API 通訊。本章解釋了外觀設計模式的工作原理以及不同的 SL4A API 外觀。
什麼是外觀設計模式?
外觀是一個物件,它提供一個介面來簡化對應用程式中相關介面的訪問。換句話說,外觀將庫的工作與客戶端隔離開來,並充當每個子系統級別的入口點。因此,客戶端僅透過其外觀進行通訊。下圖說明了這一點。

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 函式建立實用程式。