Как проверить, включен ли NFC в android или нет?
Как я могу проверить, включен ли NFC программно или нет? Есть ли способ включить NFC на устройстве из моей программы? Пожалуйста, помогите мне
5 ответов:
NfcManager manager = (NfcManager) context.getSystemService(Context.NFC_SERVICE); NfcAdapter adapter = manager.getDefaultAdapter(); if (adapter != null && adapter.isEnabled()) { // adapter exists and is enabled. }
Вы не можете включить NFC программно. Пользователь должен сделать это вручную через настройки или аппаратную кнопку.
Используйте
PackageManager
иhasSystemFeature("android.hardware.nfc")
, соответствующие элементу<uses-feature android:name="android.hardware.nfc" android:required="false" />
, который должен быть в вашем манифесте.Начиная с 2.3.3 вы также можете использовать
NfcAdapter.getDefaultAdapter()
, чтобы получить адаптер (если он доступен) и вызвать его методisEnabled()
, чтобы проверить, включен ли NFC в данный момент.
Возможно, я немного опоздал, но я реализовал "полный" пример с обнаружением
- возможность NFC (аппаратное обеспечение) и
- начальное состояние NFC (включено или отключено в настройках), и
- изменения состояния
Я также добавил соответствующий Луч Пример , который использует
nfcAdapter.isNdefPushEnabled()
Метод, введенный в более поздних версиях Android для обнаружения состояния луча, как в 2) и 3).
mNfcAdapter = NfcAdapter.getDefaultAdapter(this.getApplicationContext()); try { if (mNfcAdapter != null) { result = true; } }
Мы можем проверить, используя NfcAdapter с контекстом.
Это можно сделать, просто используя следующий код:
Помните, что пользователь может отключить 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 }
Источник: 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);