管理NFC狀態(tài)

2024-01-23 16:51 更新

本模塊主要用于管理NFC狀態(tài),包括打開和關閉NFC,讀取NFC的狀態(tài)等。

說明

本模塊首批接口從API version 7開始支持。后續(xù)版本的新增接口,采用上角標單獨標記接口的起始版本。

導入模塊

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

NfcState

定義不同的NFC狀態(tài)值。

系統(tǒng)能力: SystemCapability.Communication.NFC.Core

名稱說明
STATE_OFF1NFC已關閉狀態(tài)。
STATE_TURNING_ON2NFC正在打開狀態(tài)。
STATE_ON3NFC已打開狀態(tài)。
STATE_TURNING_OFF4NFC正在關閉狀態(tài)。

controller.isNfcAvailable

isNfcAvailable(): boolean

查詢設備是否有NFC能力。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄,建議使用canIUse("SystemCapability.Communication.NFC.Core")替代。

系統(tǒng)能力: 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

系統(tǒng)能力: SystemCapability.Communication.NFC.Core

返回值:

類型說明
booleantrue: 打開NFC成功, false: 打開NFC失敗。

controller.enableNfc9+

enableNfc(): boolean

打開NFC開關。

需要權限: ohos.permission.MANAGE_SECURE_SETTINGS

系統(tǒng)能力: 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

系統(tǒng)能力: SystemCapability.Communication.NFC.Core

返回值:

類型說明
booleantrue: 關閉NFC成功, false: 關閉NFC失敗。

controller.disableNfc9+

disableNfc(): boolean

關閉NFC開關。

需要權限: ohos.permission.MANAGE_SECURE_SETTINGS

系統(tǒng)能力: SystemCapability.Communication.NFC.Core

錯誤碼:

以下錯誤碼的詳細介紹請參見NFC錯誤碼。

錯誤碼ID錯誤信息
3100101NFC state is abnormal in service.

controller.isNfcOpen

isNfcOpen(): boolean

查詢NFC是否打開。

系統(tǒng)能力: SystemCapability.Communication.NFC.Core

返回值:

類型說明
booleantrue: NFC是打開的, false: NFC是關閉的。

controller.getNfcState

getNfcState(): NfcState

查詢NFC狀態(tài)。

系統(tǒng)能力: SystemCapability.Communication.NFC.Core

返回值:

類型說明
NfcStateNFC狀態(tài)值,詳細請見NfcState枚舉值。

controller.on('nfcStateChange')

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

注冊NFC開關狀態(tài)事件,通過Callback方式獲取NFC狀態(tài)的變化通知。

系統(tǒng)能力: SystemCapability.Communication.NFC.Core

參數(shù)

參數(shù)名類型必填說明
typestring固定填"nfcStateChange"字符串。
callbackCallback<NfcState>NFC狀態(tài)改變通知的回調(diào)函數(shù)。

controller.off('nfcStateChange')

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

取消NFC開關狀態(tài)事件的注冊,取消后NFC狀態(tài)變化時,就不會再收到Callback的通知。

系統(tǒng)能力: SystemCapability.Communication.NFC.Core

參數(shù)

參數(shù)名類型必填說明
typestring固定填"nfcStateChange"字符串。
callbackCallback<NfcState>NFC狀態(tài)改變回調(diào)函數(shù),可以空缺不填。

示例

  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");
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號