如何从我自己的应用程序开启NFC
我无法弄清楚,如何从我的android应用程序开启NFC功能,而不是从设置中开启NFC功能。 就像我们可以切换蓝牙的方式一样,NFC可以类似吗? 我已经看到了NFCAdapter文档,但是找到了合适的方法。如何从我自己的应用程序开启NFC
就像我们可以切换蓝牙的方式一样,NFC可以类似吗?
您不能以编程方式“开启蓝牙”而不是从设置中进行操作。无论是否启用蓝牙都是安全设置。同样,无论是否启用NFC,只能通过设置应用完成。
您可以使用反射从NfcAdapter对象获取方法enable()和disable()。
他们在那里,他们只是隐藏在API中。
从Android 2.3.6开始,访问它们需要特殊权限,因此解决方案不再有效。 – 2012-03-10 23:48:56
任何示例可用如何做到这一点? – 2016-05-10 12:05:32
@AnchalRadhwani答案是4岁。它不再工作了。 – 2016-05-10 12:13:58
当检测到NFC关闭时,您可以将用户重定向到的设置:
// Take the user to the wireless settings panel, where they can enable NFC
final Intent intent = new Intent(Settings.ACTION_WIRELESS_SETTINGS);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
startActivity(intent);
所以基本上我应该做这样的事情 'code' 如果(!nfcAdapter.isEnabled()) //然后按照你上面写的是什么。 – tanuj 2012-03-11 07:23:31
让我先解释一下为什么我问这个问题。 我的应用程序首先进行身份验证,之后会有另一个活动,其中产品ID是从nfc标签中检索的,并且产品的相应信息将填充到列表视图中。 因此,如果用户点击10个不同的标签,将会有一个包含10个不同项目的列表视图。 假设一个特定的用户只是在主屏幕上,并探索应用程序的其他功能,他仍然在一个标签上点击,该应用程序将如何表现?我希望列表填充功能只能在其各自的活动中运行。 – tanuj 2012-03-11 12:45:10
我仍在等待您的回复。 – tanuj 2012-03-12 19:05:38
http://stackoverflow.com/questions/1975655/enable-android-bluetooth-from-documentation 我以为可以通过编程方式打开蓝牙。我提到了上述链接。 – tanuj 2012-03-11 07:28:34
@tanuj:这不启用蓝牙 - 它允许*用户*启用蓝牙。用户总是可以说不。不幸的是,我不知道“BluetoothAdapter.ACTION_REQUEST_ENABLE”的等价物。 NFC家伙的答案就像你将要得到的那样接近。 – CommonsWare 2012-03-11 11:54:01