diff options
| author | Treehugger Robot <treehugger-gerrit@google.com> | 2020-11-18 03:45:53 +0000 |
|---|---|---|
| committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-11-18 03:45:53 +0000 |
| commit | 00f3d0f52b4b16eac2685a45dcd24f0290b37fca (patch) | |
| tree | 8bd15211fb83228a6079a635fd22714f6eec2005 /core/java/android | |
| parent | dadf0a52aa2c954ec9f4ae9ebbe5971dffe1e214 (diff) | |
| parent | 6f4a8baa7a966d69b5c217fedb58277ad6ba9918 (diff) | |
Merge changes Ifcb0f60e,I09ecdff9 am: 5bc68e02a0 am: 6f4a8baa7a
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1498599
Change-Id: I56d536bc3de868678e80d6cb1641e619b6410937
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/nfc/NfcAdapter.java | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/core/java/android/nfc/NfcAdapter.java b/core/java/android/nfc/NfcAdapter.java index 90e01ebe6205..a17a5370e787 100644 --- a/core/java/android/nfc/NfcAdapter.java +++ b/core/java/android/nfc/NfcAdapter.java @@ -678,6 +678,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) { @@ -774,6 +780,16 @@ public final class NfcAdapter { return sService.getNfcDtaInterface(mContext.getPackageName()); } catch (RemoteException e) { attemptDeadServiceRecovery(e); + // Try one more time + if (sService == null) { + Log.e(TAG, "Failed to recover NFC Service."); + return null; + } + try { + return sService.getNfcDtaInterface(mContext.getPackageName()); + } catch (RemoteException ee) { + Log.e(TAG, "Failed to recover NFC Service."); + } return null; } } @@ -836,6 +852,16 @@ public final class NfcAdapter { return sService.getState() == STATE_ON; } catch (RemoteException e) { attemptDeadServiceRecovery(e); + // Try one more time + if (sService == null) { + Log.e(TAG, "Failed to recover NFC Service."); + return false; + } + try { + return sService.getState() == STATE_ON; + } catch (RemoteException ee) { + Log.e(TAG, "Failed to recover NFC Service."); + } return false; } } @@ -859,6 +885,16 @@ public final class NfcAdapter { return sService.getState(); } catch (RemoteException e) { attemptDeadServiceRecovery(e); + // Try one more time + if (sService == null) { + Log.e(TAG, "Failed to recover NFC Service."); + return NfcAdapter.STATE_OFF; + } + try { + return sService.getState(); + } catch (RemoteException ee) { + Log.e(TAG, "Failed to recover NFC Service."); + } return NfcAdapter.STATE_OFF; } } @@ -886,6 +922,16 @@ public final class NfcAdapter { return sService.enable(); } catch (RemoteException e) { attemptDeadServiceRecovery(e); + // Try one more time + if (sService == null) { + Log.e(TAG, "Failed to recover NFC Service."); + return false; + } + try { + return sService.enable(); + } catch (RemoteException ee) { + Log.e(TAG, "Failed to recover NFC Service."); + } return false; } } @@ -915,6 +961,16 @@ public final class NfcAdapter { return sService.disable(true); } catch (RemoteException e) { attemptDeadServiceRecovery(e); + // Try one more time + if (sService == null) { + Log.e(TAG, "Failed to recover NFC Service."); + return false; + } + try { + return sService.disable(true); + } catch (RemoteException ee) { + Log.e(TAG, "Failed to recover NFC Service."); + } return false; } } @@ -930,6 +986,16 @@ public final class NfcAdapter { return sService.disable(persist); } catch (RemoteException e) { attemptDeadServiceRecovery(e); + // Try one more time + if (sService == null) { + Log.e(TAG, "Failed to recover NFC Service."); + return false; + } + try { + return sService.disable(persist); + } catch (RemoteException ee) { + Log.e(TAG, "Failed to recover NFC Service."); + } return false; } } @@ -1763,6 +1829,16 @@ public final class NfcAdapter { return sService.setNfcSecure(enable); } catch (RemoteException e) { attemptDeadServiceRecovery(e); + // Try one more time + if (sService == null) { + Log.e(TAG, "Failed to recover NFC Service."); + return false; + } + try { + return sService.setNfcSecure(enable); + } catch (RemoteException ee) { + Log.e(TAG, "Failed to recover NFC Service."); + } return false; } } @@ -1781,6 +1857,16 @@ public final class NfcAdapter { return sService.deviceSupportsNfcSecure(); } catch (RemoteException e) { attemptDeadServiceRecovery(e); + // Try one more time + if (sService == null) { + Log.e(TAG, "Failed to recover NFC Service."); + return false; + } + try { + return sService.deviceSupportsNfcSecure(); + } catch (RemoteException ee) { + Log.e(TAG, "Failed to recover NFC Service."); + } return false; } } @@ -1801,6 +1887,16 @@ public final class NfcAdapter { return sService.isNfcSecureEnabled(); } catch (RemoteException e) { attemptDeadServiceRecovery(e); + // Try one more time + if (sService == null) { + Log.e(TAG, "Failed to recover NFC Service."); + return false; + } + try { + return sService.isNfcSecureEnabled(); + } catch (RemoteException ee) { + Log.e(TAG, "Failed to recover NFC Service."); + } return false; } } @@ -2088,6 +2184,16 @@ public final class NfcAdapter { return sService.getNfcAdapterExtrasInterface(mContext.getPackageName()); } catch (RemoteException e) { attemptDeadServiceRecovery(e); + // Try one more time + if (sService == null) { + Log.e(TAG, "Failed to recover NFC Service."); + return null; + } + try { + return sService.getNfcAdapterExtrasInterface(mContext.getPackageName()); + } catch (RemoteException ee) { + Log.e(TAG, "Failed to recover NFC Service."); + } return null; } } |
