web-dev-qa-db-ja.com

NFCがAndroidで有効になっているかどうかを確認する方法は?

プログラムでNFCが有効になっているかどうかを確認するにはどうすればよいですか?プログラムからデバイスでNFCを有効にする方法はありますか?助けてください

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

プログラムでNFCを有効にすることはできません。ユーザーは設定またはハードウェアボタンを使用して手動で行う必要があります。

56
Ronnie

私はここで少し遅れるかもしれませんが、 'complete' example を実装しました。

  1. NFC機能(ハードウェア)、および
  2. 初期NFC状態(設定で有効または無効))、および
  3. 状態の変化

対応するBeam​​ example も追加しました。

nfcAdapter.isNdefPushEnabled()

後に導入されたメソッドAndroidバージョン2)および3)のようなビーム状態を検出するバージョン).

7
ThomasRS

PackageManagerhasSystemFeature("Android.hardware.nfc")を使用して、マニフェストに含める必要がある_<uses-feature Android:name="Android.hardware.nfc" Android:required="false" />_要素に一致させます。

2.3.3以降では、NfcAdapter.getDefaultAdapter()を使用してアダプタを取得し(利用可能な場合)、そのisEnabled()メソッドを呼び出して、NFCが現在有効になっているかどうかを確認することもできます。オン。

7
Ahsan

これは、次のコードを使用して簡単に実行できます。

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);
1
Yahya Uddin