Fix hidden API usage in PackageChangeReceiver

Use Context#createContextForUser instead of calling
Context#registerReceiverForUser.

Test: atest FrameworksTelephonyTests
Bug: 146834818
Change-Id: Ia239499219218d30d1556007ac4561a5ec44b72f
This commit is contained in:
Hall Liu
2019-12-31 14:58:46 -08:00
parent 5b333c3de4
commit 5edd9b2541

View File

@@ -56,12 +56,8 @@ public abstract class PackageChangeReceiver extends BroadcastReceiver {
Handler handler = (thread == null) ? BackgroundThread.getHandler() : new Handler(thread);
mRegisteredContext = context;
if (handler != null) {
if (user != null) {
context.registerReceiverAsUser(this, user, sPackageIntentFilter, null, handler);
} else {
context.registerReceiver(this, sPackageIntentFilter,
null, handler);
}
Context contextForUser = user == null ? context : context.createContextAsUser(user, 0);
contextForUser.registerReceiver(this, sPackageIntentFilter, null, handler);
} else {
throw new NullPointerException();
}