2013-02-19 119 views
5

我可以在我的NFC演示应用程序中阅读和阅读,但我需要检查设置菜单中的NFC选项是否启用。如果它没有启用,我想引导用户进入设置菜单(我知道如何做到这一点),类似于NXP的NFC TagWriter。 enter image description here如何启用NFC设置

在我的应用我使用以下SDK版本

<uses-sdk android:minSdkVersion="7" /> 
<uses-sdk android:maxSdkVersion="16"/> 

我无法检查是否设置启用。

回答

11

TNR说得对,但是请注意,从Android版本16开始,NFC有一个更具体的设置动作:

protected void startNfcSettingsActivity() { 
     if (android.os.Build.VERSION.SDK_INT >= 16) { 
      startActivity(new Intent(android.provider.Settings.ACTION_NFC_SETTINGS)); 
     } else { 
      startActivity(new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS)); 
     } 
    } 
1

使用下面的代码来获得NFCAdapter。

NfcAdapter nfcAdpt = NfcAdapter.getDefaultAdapter(this); 
if(nfcAdpt!=null) 
{ 
if(nfcAdpt.isEnabled()) 
{ 
//Nfc settings are enabled 
} 
else 
{ 
//Nfc Settings are not enabled 
} 
} 

如果要导航用户NFC的设置,然后下面的代码使用

Intent setnfc = new Intent(Settings.ACTION_WIRELESS_SETTINGS);        
startActivity(setnfc); 

没有NFC的API版本7.因此,改变你的清单文件,如下

<uses-sdk android:minSdkVersion="10" /> 
<uses-sdk android:maxSdkVersion="16"/> 
+0

感谢我在做ssame的事情,但是干什么愚蠢的错误:) – MRX 2013-02-19 13:27:39

+0

@MRX不是一个问题,如果我的回答帮助多数民众赞成确定 – TNR 2013-02-19 13:44:15

+0

NFC设置的WIRELESS_SETTINGS内ARNT在Galaxy S6 – 2017-03-09 08:16:15

0
if (Build.VERSION.SDK_INT >= 10) { 
     i = new Intent("android.settings.NFC_SETTINGS"); 
     i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     mContext.startActivity(i); 
    } else { 
     i = new Intent(Settings.ACTION_WIRELESS_SETTINGS); 
     i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     mContext.startActivity(i); 
    } 
+0

我不能用你的代码编译,所以我改为“android.settings.NFC_SETTINGS”。它被编译。 – 2013-08-03 09:09:50