SL4A - 探索 Android API


SL4A基于Facade Design Pattern与底层Android API进行通信。本章解释了外观设计模式的工作原理和不同的 SL4A API 外观。

什么是外观设计模式?

外观是一个提供接口的对象,可简化对应用程序中相关接口的访问。换句话说,外观将库的工作与客户端隔离,并充当每个子系统级别的入口点。因此,客户只能通过他们的外观进行交流。下图解释了同样的情况。

立面设计模式

SL4A 和 Android API 外观

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

下表列出了顶层外观及其提供的功能 -

编号 Android API 外观和描述
1

活动结果外观

它设置脚本如何将信息作为活动返回。此方法意味着您的脚本将返回某种结果。结果类型可以设置为 RESULT_CANCELED(0) 或 RESULT_OK(-1)

2

Android外观

它提供对常见 Android 功能的访问,例如读取输入、通知、启动应用程序组件等。

3

应用程序管理器门面

列出所有可用和正在运行的包、启动活动、创建任务管理器或终止一组特定的包。

4

BatteryManager外观

公开电池管理器并允许跟踪电池状态、健康状况、类型级别、电压等。

5

蓝牙门面

提供对蓝牙功能的访问,从基本连接功能到发送和接收 ASCII 和二进制数据。此外观至少需要 API 级别 5。

6

相机立面

此方法提供对所有相机相关功能的访问。允许使用设备的相机拍照并将其保存到指定路径。它提供了两个函数,即cameraCapturePicture和cameraInteractiveCapturePicture。这些功能仅限于使用设备后部的镜头。

7

共同意图外观

提供对常见 Android Intents 的访问,例如打开联系人列表、进行地图搜索、通过操作启动活动等。

8

联系方式门面

允许访问联系人,例如提供联系人列表以选择联系人、按属性查询联系人列表以及获取所有联系人及其 ID 和属性的列表。外观提供的一些方法包括contactsGet、pickContact、contactsGetById等。

9

事件门面

Android 操作系统维护一个事件队列,用于在应用程序之间异步传递信息。该外观提供了管理事件队列的功能,例如清除现有事件、发布新事件、列出、注册和取消注册广播信号等。方法示例包括 eventPost、eventClearBuffer 等。

10

无眼门面

可在 API 级别 4 以下的设备上使用。它允许脚本使用文本转语音技术进行对话。此外观现在已被 TextToSpeechFacade 取代。唯一可用的功能是 ttsSpeak。

11

位置外观

提供通过 GPS 或使用有关您当前使用的手机信号塔的信息来跟踪当前位置的功能。此功能需要有效的互联网连接才能进行实际查找。façade 提供了 getLastKnownLocation、startLocating、stopLocating、readLocation 等方法。

12

媒体播放器门面

允许播放媒体文件、控制媒体播放器、查询媒体播放器的当前状态以及获取有关媒体文件的信息。mediaIsPlaying、mediaPlayInfo 和 mediaPlayList 返回媒体播放器的当前状态。对 startActivity 函数的调用将启动媒体播放器。mediaPlay、mediaPlayPause、mediaPlayClose、mediaPlaySeek、mediaPlayStart 和 mediaPlaySetLooping 等函数用于控制媒体播放器。

13

媒体记录器门面

该外观提供音频和视频录制功能。startInteractiveVideoRecording、recorderStartMicrophone、recorderCaptureVideo 函数分别用于启动和开始音频/视频录制。要结束先前开始的录音,请调用 recorderStop 函数。

14

电话门面

以编程方式提供基本的电话操作,例如跟踪电话状态、漫游状态、发起呼叫、SIM 信息等。方法的示例包括phoneCallNumber、phoneDialNumber、getCellLocation 等。

15

首选项外观

允许访问共享首选项,例如获取现有首选项列表以及阅读、修改和添加新首选项。SL4A r4 版本支持三个函数:prefGetAll、prefGetValue 和 prefPutValue。

16

传感器管理器外观

允许跟踪传感器数据,例如光、加速度、磁场和方向。要启动/停止感测,请使用 startSensing(已弃用,并由 SL4r4 替换为 startSensingThreshold 和 startSensingTimed)和 stopSensing 函数调用。readSensors、sensorsGetLight、sensorsReadAccelerometer、sensorsReadMagnetometer 和sensorsReadOrientation 是该外观提供的函数。

17 号

设置外观

提供对不同手机设置的访问,如铃声音量、屏幕亮度、飞行模式、振动、媒体音量等。此外观提供的功能包括 checkAirplaneMode、checkRingersilentMode 和 checkScreenOn(至少 API 级别 7)、getVibrateMode、setScreenTimeout、toggleVibrateMode setRingerVolume 等。

18

信号强度门面

允许监控电话信号强度。调用startTrackingSignalStrengths函数开始收集数据。调用 readSignalStrengths 函数开始收集数据。要关闭进程,请调用 stoptrackingSignalStrengths 函数。它至少需要 API 级别 7。

19

短信门面

具有删除、读取、标记、发送短信等功能。该外观提供的功能示例包括 smsMarkMessageRead、smsDeleteMessage、smsSend 等。

20

语音识别门面

允许向脚本添加语音识别功能。它只有一个名为 recognizeSpeech 的函数。

21

文字转语音外观

为API4及更高版本提供TTS服务。要让设备说话,请使用 ttsSpeak 函数。要确定发言功能是否已完成,请使用 ttsIsSpeaking 函数。

22

音调发生器外观

为给定的数字生成 DTMF 音。要使用它,您必须调用generateDtmfTones函数。

23

用户界面外观

提供创建用户界面元素(如文本框、复选框、日期选择器等)的功能。它还允许交互式使用 HTML 页面。

24

唤醒锁门面

提供创建唤醒锁的函数包括wakeLockAcquireBright、wakeLockAcquireDim、wakeLockAcquireFull和wakelockAcquirePartial。

25

网络摄像头外观

该外观至少需要 API 级别 8。它允许将 MJPEG 流从前置设备摄像头传输到网络。要启动/停止网络摄像头,请分别使用 webcamStart 和 webcamStop 函数。要在流式传输时调整视频质量,请使用 webcamAdjustQuality 函数。

26

Wifi门面

帮助您控制设备上的 Wi-Fi 无线电。它允许脚本查询 Wi-Fi 连接状态、搜索接入点、连接和断开 WiFi 网络以及在脚本执行期间保持 Wi-Fi 锁定。

有关这些外观提供的方法的完整列表,请参阅https://code.google.com 。后续章节说明如何使用 Android Façade API 函数创建实用程序。