簡體   English   中英

如何檢查Android中是否啟用了NFC?

[英]How to check whether NFC is enabled or not in android?

如何以編程方式檢查NFC是否已啟用? 有沒有辦法在我的程序中啟用設備上的NFC? 請幫我

NfcManager manager = (NfcManager) context.getSystemService(Context.NFC_SERVICE);
NfcAdapter adapter = manager.getDefaultAdapter();
if (adapter != null && adapter.isEnabled()) {
    // adapter exists and is enabled.
}

您無法以編程方式啟用NFC。 用戶必須通過設置或硬件按鈕手動完成。

我可能在這里有點晚了,但我已經實現了一個'完整'的例子 ,檢測到了

  1. NFC功能(硬件)和
  2. 初始NFC狀態(在設置中啟用或禁用),以及
  3. 改變國家

我還添加了一個相應的Beam 示例 ,它使用了

nfcAdapter.isNdefPushEnabled()

在后來的Android版本中引入的方法來檢測梁狀態,如2)和3)。

使用PackageManagerhasSystemFeature("android.hardware.nfc") ,匹配你應該在清單中的<uses-feature android:name="android.hardware.nfc" android:required="false" />元素。

從2.3.3開始,您還可以使用NfcAdapter.getDefaultAdapter()來獲取適配器(如果可用)並調用其isEnabled()方法來檢查NFC當前是否已打開。

這可以使用以下代碼完成:

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。

資料來源: https//developer.android.com/guide/topics/connectivity/nfc/nfc#manifest

雖然您無法自己以編程方式啟用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);
mNfcAdapter = NfcAdapter.getDefaultAdapter(this.getApplicationContext());
    try {
        if (mNfcAdapter != null) {
            result = true;
        }
    }

我們可以使用NfcAdapter驗證上下文。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM