Use Context.NETWORK_POLICY_SERVICE to get network policy service
INetworkPolicyManager is a raw AIDL file which won't expose
as system API. Let's communicate with network policy service
through NetworkPolicyManager instead. Context.NETWORK_POLICY_SERVICE
is @SystemApi.
Bug: 138306002
Test: atest FrameworksNetTests
atest FrameworksTelephonyTests
Change-Id: I41bc1cce08f81e2d822250f2d620bff7afe4329b
This commit is contained in:
committed by
Chalard Jean
parent
58d9559369
commit
7e96360554
@@ -45,6 +45,7 @@ import android.content.res.Resources;
|
|||||||
import android.database.ContentObserver;
|
import android.database.ContentObserver;
|
||||||
import android.net.INetworkPolicyManager;
|
import android.net.INetworkPolicyManager;
|
||||||
import android.net.NetworkCapabilities;
|
import android.net.NetworkCapabilities;
|
||||||
|
import android.net.NetworkPolicyManager;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Binder;
|
import android.os.Binder;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
@@ -957,6 +958,11 @@ public class SubscriptionManager {
|
|||||||
mContext = context;
|
mContext = context;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private NetworkPolicyManager getNetworkPolicyManager() {
|
||||||
|
return (NetworkPolicyManager) mContext
|
||||||
|
.getSystemService(Context.NETWORK_POLICY_SERVICE);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @deprecated developers should always obtain references directly from
|
* @deprecated developers should always obtain references directly from
|
||||||
* {@link Context#getSystemService(Class)}.
|
* {@link Context#getSystemService(Class)}.
|
||||||
@@ -967,7 +973,7 @@ public class SubscriptionManager {
|
|||||||
.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
|
.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
|
||||||
}
|
}
|
||||||
|
|
||||||
private final INetworkPolicyManager getNetworkPolicy() {
|
private INetworkPolicyManager getINetworkPolicyManager() {
|
||||||
if (mNetworkPolicy == null) {
|
if (mNetworkPolicy == null) {
|
||||||
mNetworkPolicy = INetworkPolicyManager.Stub.asInterface(
|
mNetworkPolicy = INetworkPolicyManager.Stub.asInterface(
|
||||||
TelephonyFrameworkInitializer
|
TelephonyFrameworkInitializer
|
||||||
@@ -2587,14 +2593,10 @@ public class SubscriptionManager {
|
|||||||
* outlined above.
|
* outlined above.
|
||||||
*/
|
*/
|
||||||
public @NonNull List<SubscriptionPlan> getSubscriptionPlans(int subId) {
|
public @NonNull List<SubscriptionPlan> getSubscriptionPlans(int subId) {
|
||||||
try {
|
SubscriptionPlan[] subscriptionPlans =
|
||||||
SubscriptionPlan[] subscriptionPlans =
|
getNetworkPolicyManager().getSubscriptionPlans(subId, mContext.getOpPackageName());
|
||||||
getNetworkPolicy().getSubscriptionPlans(subId, mContext.getOpPackageName());
|
return subscriptionPlans == null
|
||||||
return subscriptionPlans == null
|
? Collections.emptyList() : Arrays.asList(subscriptionPlans);
|
||||||
? Collections.emptyList() : Arrays.asList(subscriptionPlans);
|
|
||||||
} catch (RemoteException e) {
|
|
||||||
throw e.rethrowFromSystemServer();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -2620,18 +2622,14 @@ public class SubscriptionManager {
|
|||||||
* defined in {@link SubscriptionPlan}.
|
* defined in {@link SubscriptionPlan}.
|
||||||
*/
|
*/
|
||||||
public void setSubscriptionPlans(int subId, @NonNull List<SubscriptionPlan> plans) {
|
public void setSubscriptionPlans(int subId, @NonNull List<SubscriptionPlan> plans) {
|
||||||
try {
|
getNetworkPolicyManager().setSubscriptionPlans(subId,
|
||||||
getNetworkPolicy().setSubscriptionPlans(subId,
|
plans.toArray(new SubscriptionPlan[plans.size()]), mContext.getOpPackageName());
|
||||||
plans.toArray(new SubscriptionPlan[plans.size()]), mContext.getOpPackageName());
|
|
||||||
} catch (RemoteException e) {
|
|
||||||
throw e.rethrowFromSystemServer();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @hide */
|
/** @hide */
|
||||||
private String getSubscriptionPlansOwner(int subId) {
|
private String getSubscriptionPlansOwner(int subId) {
|
||||||
try {
|
try {
|
||||||
return getNetworkPolicy().getSubscriptionPlansOwner(subId);
|
return getINetworkPolicyManager().getSubscriptionPlansOwner(subId);
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
throw e.rethrowFromSystemServer();
|
throw e.rethrowFromSystemServer();
|
||||||
}
|
}
|
||||||
@@ -2662,13 +2660,10 @@ public class SubscriptionManager {
|
|||||||
*/
|
*/
|
||||||
public void setSubscriptionOverrideUnmetered(int subId, boolean overrideUnmetered,
|
public void setSubscriptionOverrideUnmetered(int subId, boolean overrideUnmetered,
|
||||||
@DurationMillisLong long timeoutMillis) {
|
@DurationMillisLong long timeoutMillis) {
|
||||||
try {
|
|
||||||
final int overrideValue = overrideUnmetered ? SUBSCRIPTION_OVERRIDE_UNMETERED : 0;
|
final int overrideValue = overrideUnmetered ? SUBSCRIPTION_OVERRIDE_UNMETERED : 0;
|
||||||
getNetworkPolicy().setSubscriptionOverride(subId, SUBSCRIPTION_OVERRIDE_UNMETERED,
|
getNetworkPolicyManager().setSubscriptionOverride(subId, SUBSCRIPTION_OVERRIDE_UNMETERED,
|
||||||
overrideValue, timeoutMillis, mContext.getOpPackageName());
|
overrideValue, timeoutMillis, mContext.getOpPackageName());
|
||||||
} catch (RemoteException e) {
|
|
||||||
throw e.rethrowFromSystemServer();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -2697,13 +2692,9 @@ public class SubscriptionManager {
|
|||||||
*/
|
*/
|
||||||
public void setSubscriptionOverrideCongested(int subId, boolean overrideCongested,
|
public void setSubscriptionOverrideCongested(int subId, boolean overrideCongested,
|
||||||
@DurationMillisLong long timeoutMillis) {
|
@DurationMillisLong long timeoutMillis) {
|
||||||
try {
|
final int overrideValue = overrideCongested ? SUBSCRIPTION_OVERRIDE_CONGESTED : 0;
|
||||||
final int overrideValue = overrideCongested ? SUBSCRIPTION_OVERRIDE_CONGESTED : 0;
|
getNetworkPolicyManager().setSubscriptionOverride(subId, SUBSCRIPTION_OVERRIDE_CONGESTED,
|
||||||
getNetworkPolicy().setSubscriptionOverride(subId, SUBSCRIPTION_OVERRIDE_CONGESTED,
|
overrideValue, timeoutMillis, mContext.getOpPackageName());
|
||||||
overrideValue, timeoutMillis, mContext.getOpPackageName());
|
|
||||||
} catch (RemoteException e) {
|
|
||||||
throw e.rethrowFromSystemServer();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user