codecamp

管理NFC状态

本模块主要用于管理NFC状态,包括打开和关闭NFC,读取NFC的状态等。

说明

本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

  1. import controller from '@ohos.nfc.controller';

NfcState

定义不同的NFC状态值。

系统能力: SystemCapability.Communication.NFC.Core

名称说明
STATE_OFF1NFC已关闭状态。
STATE_TURNING_ON2NFC正在打开状态。
STATE_ON3NFC已打开状态。
STATE_TURNING_OFF4NFC正在关闭状态。

controller.isNfcAvailable

isNfcAvailable(): boolean

查询设备是否有NFC能力。

说明

从 API version 7 开始支持,从 API version 9 开始废弃,建议使用canIUse("SystemCapability.Communication.NFC.Core")替代。

系统能力: SystemCapability.Communication.NFC.Core

返回值:

类型说明
booleantrue: 设备具备NFC能力, false: 设备不具备NFC能力。

controller.openNfc

openNfc(): boolean

打开NFC开关。

说明

从 API version 7 开始支持,从 API version 9 开始废弃,建议使用enableNfc替代。

需要权限: ohos.permission.MANAGE_SECURE_SETTINGS

系统能力: SystemCapability.Communication.NFC.Core

返回值:

类型说明
booleantrue: 打开NFC成功, false: 打开NFC失败。

controller.enableNfc9+

enableNfc(): boolean

打开NFC开关。

需要权限: ohos.permission.MANAGE_SECURE_SETTINGS

系统能力: SystemCapability.Communication.NFC.Core

错误码:

以下错误码的详细介绍请参见NFC错误码

错误码ID错误信息
3100101NFC state is abnormal in service.

controller.closeNfc

closeNfc(): boolean

关闭NFC开关。

说明

从 API version 7 开始支持,从 API version 9 开始废弃,建议使用disableNfc替代。

需要权限: ohos.permission.MANAGE_SECURE_SETTINGS

系统能力: SystemCapability.Communication.NFC.Core

返回值:

类型说明
booleantrue: 关闭NFC成功, false: 关闭NFC失败。

controller.disableNfc9+

disableNfc(): boolean

关闭NFC开关。

需要权限: ohos.permission.MANAGE_SECURE_SETTINGS

系统能力: SystemCapability.Communication.NFC.Core

错误码:

以下错误码的详细介绍请参见NFC错误码

错误码ID错误信息
3100101NFC state is abnormal in service.

controller.isNfcOpen

isNfcOpen(): boolean

查询NFC是否打开。

系统能力: SystemCapability.Communication.NFC.Core

返回值:

类型说明
booleantrue: NFC是打开的, false: NFC是关闭的。

controller.getNfcState

getNfcState(): NfcState

查询NFC状态。

系统能力: SystemCapability.Communication.NFC.Core

返回值:

类型说明
NfcStateNFC状态值,详细请见NfcState枚举值。

controller.on('nfcStateChange')

on(type: "nfcStateChange", callback: Callback<NfcState>): void

注册NFC开关状态事件,通过Callback方式获取NFC状态的变化通知。

系统能力: SystemCapability.Communication.NFC.Core

参数

参数名类型必填说明
typestring固定填"nfcStateChange"字符串。
callbackCallback<NfcState>NFC状态改变通知的回调函数。

controller.off('nfcStateChange')

off(type: "nfcStateChange", callback?: Callback<NfcState>): void

取消NFC开关状态事件的注册,取消后NFC状态变化时,就不会再收到Callback的通知。

系统能力: SystemCapability.Communication.NFC.Core

参数

参数名类型必填说明
typestring固定填"nfcStateChange"字符串。
callbackCallback<NfcState>NFC状态改变回调函数,可以空缺不填。

示例

  1. import controller from '@ohos.nfc.controller';
  2. // register callback to receive the nfc state changed notification
  3. controller.on("nfcStateChange", (err, nfcState)=> {
  4. if (err) {
  5. console.log("controller on callback err: " + err);
  6. } else {
  7. console.log("controller on callback nfcState: " + nfcState);
  8. }
  9. });
  10. // open nfc, require permission: ohos.permission.MANAGE_SECURE_SETTINGS
  11. if (!controller.isNfcOpen()) {
  12. var ret = controller.openNfc();
  13. console.log("controller openNfc ret: " + ret);
  14. }
  15. // from api9, use 'enableNfc' to open nfc.
  16. try {
  17. controller.enableNfc();
  18. console.log("controller enableNfc success");
  19. } catch (busiError) {
  20. console.log("controller enableNfc busiError: " + busiError);
  21. }
  22. // close nfc, require permission: ohos.permission.MANAGE_SECURE_SETTINGS
  23. if (controller.isNfcOpen()) {
  24. var ret = controller.closeNfc();
  25. console.log("controller closeNfc ret: " + ret);
  26. }
  27. // from api9, use 'disableNfc' to close nfc.
  28. try {
  29. controller.disableNfc();
  30. console.log("controller disableNfc success");
  31. } catch (busiError) {
  32. console.log("controller disableNfc busiError: " + busiError);
  33. }
  34. // unregister callback
  35. controller.off("nfcStateChange");
NFC卡模拟业务
操作及管理NFC Tag
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

媒体组件

像素

枚举

类型

接口

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }