• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Interface (SecureSession)
2<!--Kit: Camera Kit-->
3<!--Subsystem: Multimedia-->
4<!--Owner: @qano-->
5<!--Designer: @leo_ysl-->
6<!--Tester: @xchaosioda-->
7<!--Adviser: @zengyawen-->
8
9> **说明:**
10>
11> - 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
12> - 本Interface首批接口从API version 12开始支持。
13
14SecureSession 继承自 [Session](arkts-apis-camera-Session.md)、[Flash](arkts-apis-camera-Flash.md)、[AutoExposure](arkts-apis-camera-AutoExposure.md)、[WhiteBalance](arkts-apis-camera-WhiteBalance.md)、[Focus](arkts-apis-camera-Focus.md)、[Zoom](arkts-apis-camera-Zoom.md)。
15
16安全模式会话类,提供了对闪光灯、曝光、白平衡、对焦、变焦的操作。
17
18> **说明:**
19>
20> 通过[createSession](arkts-apis-camera-CameraManager.md#createsession11)接口传入[SceneMode](arkts-apis-camera-e.md#scenemode11)为SECURE_PHOTO模式创建一个安全模式的会话。该模式开放给人脸识别、银行等有安全诉求的应用,需要结合<!--RP1-->安全TA<!--RP1End-->使用,支持同时出普通预览流和安全流的业务场景。<!--RP2-->
21> <br>安全TA:可用于图片处理,它具备验证服务器下发数据的验签能力、图片签名、解析及组装tlv逻辑的能力,还具备密钥读取、创建及操作能力。<!--RP2End-->
22
23## 导入模块
24
25```ts
26import { camera } from '@kit.CameraKit';
27```
28
29## addSecureOutput<sup>12+</sup>
30
31addSecureOutput(previewOutput: PreviewOutput): void
32
33将其中一条[PreviewOutput](arkts-apis-camera-PreviewOutput.md)标记成安全输出。
34
35**原子化服务API:** 从API version 19开始,该接口支持在原子化服务中使用。
36
37**系统能力:** SystemCapability.Multimedia.Camera.Core
38
39**参数:**
40
41| 参数名           | 类型                             | 必填 | 说明            |
42| ------------- | ------------------------------- | ---- |---------------|
43| previewOutput  | [PreviewOutput](arkts-apis-camera-PreviewOutput.md)   | 是   | 需要标记成安全输出的预览流,传参异常时,会返回错误码。 |
44
45**错误码:**
46
47以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。
48
49| 错误码ID         | 错误信息        |
50| --------------- | --------------- |
51| 7400101                |  Parameter missing or parameter type incorrect.        |
52| 7400102                |  Operation not allowed.                                  |
53
54**示例:**
55
56```ts
57import { BusinessError } from '@kit.BasicServicesKit';
58
59function addSecureOutput(session: camera.SecureSession, previewOutput: camera.PreviewOutput): void {
60  try {
61    session.addSecureOutput(previewOutput);
62  } catch (error) {
63    // 失败返回错误码error.code并处理。
64    let err = error as BusinessError;
65    console.error(`The addOutput call failed. error code: ${err.code}`);
66  }
67}
68```
69
70## on('error')<sup>12+</sup>
71
72on(type: 'error', callback: ErrorCallback): void
73
74监听安全相机会话的错误事件,通过注册回调函数获取结果。使用callback异步回调。
75
76> **说明:**
77>
78> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。
79
80**原子化服务API:** 从API version 19开始,该接口支持在原子化服务中使用。
81
82**系统能力:** SystemCapability.Multimedia.Camera.Core
83
84**参数:**
85
86| 参数名     | 类型              | 必填 | 说明                           |
87| -------- | ------------------ | ---- | ------------------------------ |
88| type     | string             | 是   | 监听事件,固定为'error',session创建成功之后可监听该接口。session调用相关接口出现错误时会触发该事件,比如调用[beginConfig](arkts-apis-camera-Session.md#beginconfig11),[commitConfig](arkts-apis-camera-Session.md#commitconfig11-1),[addInput](arkts-apis-camera-Session.md#addinput11)等接口发生错误时返回错误信息。 |
89| callback | [ErrorCallback](../apis-basic-services-kit/js-apis-base.md#errorcallback)      | 是   | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](arkts-apis-camera-e.md#cameraerrorcode)。   |
90
91**示例:**
92
93```ts
94import { BusinessError } from '@kit.BasicServicesKit';
95
96function callback(err: BusinessError): void {
97  console.error(`Video session error code: ${err.code}`);
98}
99
100function registerSessionError(secureSession: camera.SecureSession): void {
101  secureSession.on('error', callback);
102}
103```
104
105## off('error')<sup>12+</sup>
106
107off(type: 'error', callback?: ErrorCallback): void
108
109注销监听安全相机会话的错误事件,通过注册回调函数获取结果。
110
111**原子化服务API:** 从API version 19开始,该接口支持在原子化服务中使用。
112
113**系统能力:** SystemCapability.Multimedia.Camera.Core
114
115**参数:**
116
117| 参数名     | 类型                          | 必填 | 说明                           |
118| -------- | --------------------------- | ---- | ------------------------------ |
119| type     | string                    | 是   | 监听事件,固定为'error',session创建成功之后可监听该接口。 |
120| callback | [ErrorCallback](../apis-basic-services-kit/js-apis-base.md#errorcallback)| 否   | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 |
121
122**示例:**
123
124```ts
125function unregisterSessionError(secureSession: camera.SecureSession): void {
126  secureSession.off('error');
127}
128```
129
130## on('focusStateChange')<sup>12+</sup>
131
132on(type: 'focusStateChange', callback: AsyncCallback\<FocusState\>): void
133
134监听相机聚焦的状态变化,通过注册回调函数获取结果。使用callback异步回调。
135
136> **说明:**
137>
138> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。
139
140**原子化服务API:** 从API version 19开始,该接口支持在原子化服务中使用。
141
142**系统能力:** SystemCapability.Multimedia.Camera.Core
143
144**参数:**
145
146| 参数名     | 类型                    | 必填 | 说明                       |
147| -------- | ---------------- | ---- | ------------------------ |
148| type     | string                                    | 是   | 监听事件,固定为'focusStateChange',session创建成功可监听。仅当自动对焦模式时,且相机对焦状态发生改变时可触发该事件。 |
149| callback | AsyncCallback\<[FocusState](arkts-apis-camera-e.md#focusstate)\> | 是   | 回调函数,用于获取当前对焦状态。  |
150
151**示例:**
152
153```ts
154import { BusinessError } from '@kit.BasicServicesKit';
155
156function callback(err: BusinessError, focusState: camera.FocusState): void {
157  if (err !== undefined && err.code !== 0) {
158    console.error(`Callback Error, errorCode: ${err.code}`);
159    return;
160  }
161  console.info(`Focus state: ${focusState}`);
162}
163
164function registerFocusStateChange(secureSession: camera.SecureSession): void {
165  secureSession.on('focusStateChange', callback);
166}
167```
168
169## off('focusStateChange')<sup>12+</sup>
170
171off(type: 'focusStateChange', callback?: AsyncCallback\<FocusState\>): void
172
173注销监听相机聚焦的状态变化。
174
175**原子化服务API:** 从API version 19开始,该接口支持在原子化服务中使用。
176
177**系统能力:** SystemCapability.Multimedia.Camera.Core
178
179**参数:**
180
181| 参数名     | 类型                                      | 必填 | 说明                       |
182| -------- | ----------------------------------------- | ---- | ------------------------ |
183| type     | string                                    | 是   | 监听事件,固定为'focusStateChange',session创建成功可监听。 |
184| callback | AsyncCallback\<[FocusState](arkts-apis-camera-e.md#focusstate)\> | 否  | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 |
185
186**示例:**
187
188```ts
189function unregisterFocusStateChange(secureSession: camera.SecureSession): void {
190  secureSession.off('focusStateChange');
191}
192```
193