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

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

Solutions Collecting From Web of "如何检查是否在Android中启用NFC?"

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上下文。