• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.nfc.controller (标准NFC)
2
3<!--Kit: Connectivity Kit-->
4<!--Subsystem: Communication-->
5<!--Owner: @amunra03-->
6<!--Designer: @wenxiaolin-->
7<!--Tester: @zs_111-->
8<!--Adviser: @zhang_yixin13-->
9
10本模块主要用于管理NFC状态,包括打开和关闭NFC,读取NFC的状态等。
11
12> **说明:**
13>
14> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
15
16## **导入模块**
17
18```js
19import { nfcController } from '@kit.ConnectivityKit';
20```
21
22## NfcState
23
24定义不同的NFC状态值。
25
26**系统能力:** SystemCapability.Communication.NFC.Core
27
28**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
29
30| 名称 | 值 | 说明 |
31| -------- | -------- | -------- |
32| STATE_OFF | 1 | NFC已关闭状态。 |
33| STATE_TURNING_ON | 2 | NFC正在打开状态。 |
34| STATE_ON | 3      | NFC已打开状态。 |
35| STATE_TURNING_OFF | 4      | NFC正在关闭状态。 |
36
37## nfcController.isNfcAvailable<sup>(deprecated)</sup>
38
39isNfcAvailable(): boolean
40
41查询设备是否有NFC能力。
42
43> **说明:**
44> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用[canIUse("SystemCapability.Communication.NFC.Core")](../common/init.md#caniuse)替代。
45
46**系统能力:** SystemCapability.Communication.NFC.Core
47
48**返回值:**
49
50| **类型** | **说明** |
51| -------- | -------- |
52| boolean | true: 设备具备NFC能力,&nbsp;false: 设备不具备NFC能力。 |
53
54
55## nfcController.openNfc<sup>(deprecated)</sup>
56
57openNfc(): boolean
58
59打开NFC开关。
60
61> **说明:**
62> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用[enableNfc](#nfccontrollerenablenfc9)替代。
63
64**需要权限:** ohos.permission.MANAGE_SECURE_SETTINGS(该权限仅系统应用可申请)
65
66**系统能力:** SystemCapability.Communication.NFC.Core
67
68**返回值:**
69
70| **类型** | **说明** |
71| -------- | -------- |
72| boolean | true: 打开NFC成功,&nbsp;false: 打开NFC失败。 |
73
74## nfcController.enableNfc<sup>9+</sup>
75
76enableNfc(): void
77
78打开NFC开关,该接口只能被系统应用调用。
79
80**需要权限:** ohos.permission.MANAGE_SECURE_SETTINGS(该权限仅系统应用可申请)
81
82**系统能力:** SystemCapability.Communication.NFC.Core
83
84**错误码:**
85
86以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。
87
88| 错误码ID | 错误信息|
89| ------- | -------|
90|201 | Permission denied.                 |
91|801 | Capability not supported.          |
92| 3100101 | The NFC state is abnormal in the service. |
93
94## nfcController.closeNfc<sup>(deprecated)</sup>
95
96closeNfc(): boolean
97
98关闭NFC开关。
99
100> **说明:**
101> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用[disableNfc](#nfccontrollerdisablenfc9)替代。
102
103**需要权限:** ohos.permission.MANAGE_SECURE_SETTINGS(该权限仅系统应用可申请)
104
105**系统能力:** SystemCapability.Communication.NFC.Core
106
107**返回值:**
108
109| **类型** | **说明**                                    |
110| -------- | ------------------------------------------- |
111| boolean  | true: 关闭NFC成功,&nbsp;false: 关闭NFC失败。 |
112
113## nfcController.disableNfc<sup>9+</sup>
114
115disableNfc(): void
116
117关闭NFC开关,该接口只能被系统应用调用。
118
119**需要权限:** ohos.permission.MANAGE_SECURE_SETTINGS(该权限仅系统应用可申请)
120
121**系统能力:** SystemCapability.Communication.NFC.Core
122
123**错误码:**
124
125以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。
126
127| 错误码ID | 错误信息|
128| ------- | -------|
129|201 | Permission denied.                 |
130|801 | Capability not supported.          |
131| 3100101 | The NFC state is abnormal in the service. |
132
133## nfcController.isNfcOpen
134
135isNfcOpen(): boolean
136
137查询NFC是否打开。
138
139**系统能力:** SystemCapability.Communication.NFC.Core
140
141**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
142
143**返回值:**
144
145| **类型** | **说明**                            |
146| -------- | ----------------------------------- |
147| boolean  | true: NFC是打开的,&nbsp;false: NFC是关闭的。 |
148
149## nfcController.getNfcState
150
151getNfcState(): [NfcState](#nfcstate)
152
153查询NFC状态。
154
155**系统能力:** SystemCapability.Communication.NFC.Core
156
157**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
158
159**返回值:**
160
161| **类型** | **说明**               |
162| -------- | ---------------------- |
163| [NfcState](#nfcstate) | NFC状态值,详细请见[NfcState](#nfcstate)枚举值。 |
164
165## nfcController.on('nfcStateChange')
166
167on(type: 'nfcStateChange', callback: Callback&lt;[NfcState](#nfcstate)&gt;): void
168
169注册NFC开关状态事件,通过Callback方式获取NFC状态的变化通知。
170
171**系统能力:** SystemCapability.Communication.NFC.Core
172
173**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
174
175**参数**
176
177| **参数名** | **类型** | **必填** | **说明** |
178| -------- | -------- | -------- | -------- |
179| type | string | 是 | 固定填"nfcStateChange"字符串。 |
180| callback | Callback&lt;[NfcState](#nfcstate)&gt; | 是 | NFC状态改变通知的回调函数。 |
181
182## nfcController.off('nfcStateChange')
183
184off(type: 'nfcStateChange', callback?: Callback&lt;[NfcState](#nfcstate)&gt;): void
185
186取消NFC开关状态事件的注册,取消后NFC状态变化时,就不会再收到Callback的通知。
187
188**系统能力:** SystemCapability.Communication.NFC.Core
189
190**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
191
192**参数**
193
194| **参数名** | **类型** | **必填** | **说明** |
195| -------- | -------- | -------- | -------- |
196| type | string | 是 | 固定填"nfcStateChange"字符串。 |
197| callback | Callback&lt;[NfcState](#nfcstate)&gt; | 否 | NFC状态改变回调函数,可以空缺不填。如果callback不填,将取消注册该事件关联的所有回调函数。 |
198
199**示例**
200
201```js
202import { nfcController } from '@kit.ConnectivityKit';
203
204// 注册回调以接收nfc状态更改通知
205nfcController.on("nfcStateChange", (nfcState : number)=> {
206  console.log("nfcController on callback nfcState: " + nfcState);
207});
208
209// 打开nfc需要权限: ohos.permission.MANAGE_SECURE_SETTINGS(此权限仅系统应用可申请)
210if (!nfcController.isNfcOpen()) {
211  // 从api9开始,使用'enableNfc'打开nfc
212  try {
213    nfcController.enableNfc();
214    console.log("nfcController enableNfc success");
215  } catch (businessError) {
216    console.error("nfcController enableNfc businessError: " + businessError);
217  }
218} else {
219  console.log("nfcController NFC has been opened");
220}
221
222// 关闭nfc需要权限: ohos.permission.MANAGE_SECURE_SETTINGS(此权限仅系统应用可申请)
223if (nfcController.isNfcOpen()) {
224  // 从api9开始,使用'disableNfc'关闭nfc
225  try {
226    nfcController.disableNfc();
227    console.log("nfcController disableNfc success");
228  } catch (businessError) {
229    console.error("nfcController disableNfc businessError: " + businessError);
230  }
231} else {
232  console.log("nfcController NFC has been closed");
233}
234
235// 取消注册回调
236nfcController.off("nfcStateChange");
237```
238