diff options
-rw-r--r-- | src/com/android/nfc/NfcService.java | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/src/com/android/nfc/NfcService.java b/src/com/android/nfc/NfcService.java index c983fe48..1d3a598a 100644 --- a/src/com/android/nfc/NfcService.java +++ b/src/com/android/nfc/NfcService.java @@ -685,8 +685,14 @@ public class NfcService implements DeviceHostListener { for (UserHandle uh : luh) { if (um.isQuietModeEnabled(uh)) continue; - PackageManager pm = mContext.createContextAsUser(uh, - /*flags=*/0).getPackageManager(); + PackageManager pm; + try { + pm = mContext.createContextAsUser(uh, /*flags=*/0).getPackageManager(); + } catch (IllegalStateException e) { + Log.d(TAG, "Fail to get PackageManager for user: " + uh); + continue; + } + List<PackageInfo> packagesNfcEvents = pm.getPackagesHoldingPermissions( new String[] {android.Manifest.permission.NFC_TRANSACTION_EVENT}, PackageManager.GET_ACTIVITIES); @@ -2982,8 +2988,14 @@ public class NfcService implements DeviceHostListener { mContext.sendBroadcastAsUser(intent, userHandle); } } - PackageManager pm = mContext.createContextAsUser(userHandle, - /*flags=*/0).getPackageManager(); + PackageManager pm; + try { + pm = mContext.createContextAsUser(userHandle, /*flags=*/0) + .getPackageManager(); + } catch (IllegalStateException e) { + Log.d(TAG, "Fail to get PackageManager for user: " + userHandle); + continue; + } for (String packageName : mNfcPreferredPaymentChangedInstalledPackages.get(userId)) { try { |