如何检查android中是否启用了NFC?
如何检查NFC是否以编程方式启用?有没有办法通过我的程序在设备上启用NFC?请帮助我使用如何检查android中是否启用了NFC?,android,nfc,Android,Nfc,如何检查NFC是否以编程方式启用?有没有办法通过我的程序在设备上启用NFC?请帮助我使用PackageManager和hasSystemFeature(“android.hardware.nfc”),与清单中的元素相匹配 从2.3.3开始,您还可以使用NfcAdapter.getDefaultAdapter()获取适配器(如果可用),并调用其isEnabled()方法检查NFC当前是否已打开 NfcManager manager = (NfcManager) context.getSystemS
PackageManager
和hasSystemFeature(“android.hardware.nfc”)
,与清单中的
元素相匹配
从2.3.3开始,您还可以使用NfcAdapter.getDefaultAdapter()
获取适配器(如果可用),并调用其isEnabled()
方法检查NFC当前是否已打开
NfcManager manager = (NfcManager) context.getSystemService(Context.NFC_SERVICE);
NfcAdapter adapter = manager.getDefaultAdapter();
if (adapter != null && adapter.isEnabled()) {
// adapter exists and is enabled.
}
不能以编程方式启用NFC。用户必须通过设置或硬件按钮手动执行此操作。我在这里可能会晚一点,但我已经实现了一个“完整”功能,可以检测到
nfcAdapter.isNdefPushEnabled()
在以后的Android版本中引入了一种检测光束状态的方法,如2)和3)
我们可以在上下文中使用NfcAdapter进行验证。只需使用以下代码即可完成此操作:
NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(this);
if (nfcAdapter == null) {
// NFC is not available for device
} else if (!nfcAdapter.isEnabled()) {
// NFC is available for device but not enabled
} else {
// NFC is enabled
}
请记住,用户可以关闭NFC,即使在使用您的应用程序时也是如此
资料来源:
虽然您自己无法通过编程启用NFC,但您可以通过按钮打开NFC设置来请求用户启用NFC,如下所示:
Intent intent
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
intent = new Intent(Settings.ACTION_NFC_SETTINGS);
} else {
Intent intent = new Intent(Settings.ACTION_WIRELESS_SETTINGS);
}
startActivity(intent);
因此,如果返回值为FALSE,则表示设备不具备NFC功能,那么@userSeven7s是否为true?这是不正确的。如果适配器为空,则设备没有NFC。谷歌代码已经关闭,你可以更新你的答案吗?Android Beam不再受支持。
Intent intent
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
intent = new Intent(Settings.ACTION_NFC_SETTINGS);
} else {
Intent intent = new Intent(Settings.ACTION_WIRELESS_SETTINGS);
}
startActivity(intent);