2013-02-19 44 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