SL4A - 探索 Android API

SL4A 基于外观设计模式与底层 Android API 进行通信。本章介绍外观设计模式的工作原理以及不同的 SL4A API 外观。

什么是外观设计模式?

外观是一个提供接口的对象,可简化对应用程序中相关接口的访问。换句话说,外观将库的工作与客户端隔离开来,并充当每个子系统级别的入口点。因此,客户端仅通过其外观进行通信。下图解释了这一点。

外观设计模式

SL4A 和 Android API 外观

SL4A 为其支持的每种语言托管解释器。解释器通过称为外观 (facade) 的接口访问底层 Android API。

下表列出了顶级外观及其提供的功能 −

S.No. Android API Facade 和说明
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 和 sensorReadOrientation 是此外观提供的功能。

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函数。要确定说话功能是否已完成,请使用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 Façade API 函数创建实用程序。