From aee0ab9eb91d55bf6df0676f128420e7fc54ea09 Mon Sep 17 00:00:00 2001 From: qingxi Date: Wed, 12 Jul 2017 13:15:51 -0700 Subject: [PATCH] Fix the error that the broadcast receiver cannot be registered Factory reset of eSIM failed due to the euiccWipeFinishReceiver cannot be registered by the context directly. This CL changes the context to application context to solve this problem. Bug: 63610700 Test: E2E Change-Id: I7e4c8b75b5b5b4203efd7302677ffa5cf00198b5 --- core/java/android/os/RecoverySystem.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/core/java/android/os/RecoverySystem.java b/core/java/android/os/RecoverySystem.java index 2c6c7f96c5179..1f8de044b2808 100644 --- a/core/java/android/os/RecoverySystem.java +++ b/core/java/android/os/RecoverySystem.java @@ -808,7 +808,8 @@ public class RecoverySystem { HandlerThread euiccHandlerThread = new HandlerThread("euiccWipeFinishReceiverThread"); euiccHandlerThread.start(); Handler euiccHandler = new Handler(euiccHandlerThread.getLooper()); - context.registerReceiver(euiccWipeFinishReceiver, filterConsent, null, euiccHandler); + context.getApplicationContext() + .registerReceiver(euiccWipeFinishReceiver, filterConsent, null, euiccHandler); if (isWipeEuicc) { euiccManager.eraseSubscriptions(callbackIntent); } else { @@ -831,7 +832,7 @@ public class RecoverySystem { Log.e(TAG, "Timeout retaining eUICC data."); } } - context.unregisterReceiver(euiccWipeFinishReceiver); + context.getApplicationContext().unregisterReceiver(euiccWipeFinishReceiver); } catch (InterruptedException e) { Thread.currentThread().interrupt(); if (isWipeEuicc) {