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