From 23abf11a3a8518a665f12f173c53d77993a27a32 Mon Sep 17 00:00:00 2001 From: Jack Yu Date: Fri, 13 Nov 2020 18:34:42 +0800 Subject: [PATCH] Nfc adapter randomly returns null on devices having Nfc Try to get NfcAdapter from NfcManager only when nfc service interface is ready. Bug: 173184157 Test: manaul test Change-Id: Ifcb0f60e23f01cafd8b6b5f6bc8522773ece23a6 (cherry picked from commit 3217255a4d1f6dcbc28a0351dc74f136331f2d39) --- core/java/android/nfc/NfcAdapter.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/java/android/nfc/NfcAdapter.java b/core/java/android/nfc/NfcAdapter.java index c61f10f50c93b..dc4ce039bf77e 100644 --- a/core/java/android/nfc/NfcAdapter.java +++ b/core/java/android/nfc/NfcAdapter.java @@ -677,6 +677,12 @@ public final class NfcAdapter { throw new IllegalArgumentException( "context not associated with any application (using a mock context?)"); } + + if (getServiceInterface() == null) { + // NFC is not available + return null; + } + /* use getSystemService() for consistency */ NfcManager manager = (NfcManager) context.getSystemService(Context.NFC_SERVICE); if (manager == null) {