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