如何检查是否在Android中启用NFC?

我如何检查NFC是否启用或不是以编程方式? 有没有办法从我的程序启用设备上的NFC? 请帮帮我

  • 使用Jelly Bean的简单安全配对(Bluetooth)与NFC配对
  • NFC支付如何工作?
  • 使用Android手机阅读RFID
  • 屏幕locking在Android时启动NFC
  • 在Android设备上检测NFC
  • Android:卡模拟 - 使用PN532 nfc模块读取ndef消息
  • 使用Android 4.4模拟Mifare卡
  • 蓝牙配对没有用户确认
  • NfcManager manager = (NfcManager) context.getSystemService(Context.NFC_SERVICE); NfcAdapter adapter = manager.getDefaultAdapter(); if (adapter != null && adapter.isEnabled()) { // adapter exists and is enabled. } 

    您无法以编程方式启用NFC。 用户必须通过设置或硬件button手动执行。

    使用PackageManagerhasSystemFeature("android.hardware.nfc") ,匹配清单中应该包含的<uses-feature android:name="android.hardware.nfc" android:required="false" />元素。

    从2.3.3开始,您还可以使用NfcAdapter.getDefaultAdapter()获取适配器(如果可用)并调用其isEnabled()方法来检查NFC是否当前处于打开状态。

    我可能在这里稍微迟了一些,但是我已经实现了一个“完整”的例子

    1. NFCfunction(硬件)和
    2. 初始NFC状态(在设置中启用或禁用)和
    3. 状态的变化

    我还添加了一个相应的Beam 示例 ,它使用了

     nfcAdapter.isNdefPushEnabled() 

    方法在后来的Android版本中引入来检测束状态,如2)和3)。

     mNfcAdapter = NfcAdapter.getDefaultAdapter(this.getApplicationContext()); try { if (mNfcAdapter != null) { result = true; } } 

    我们可以使用NfcAdapter来validation上下文。