Merge "Adding @hide API to return whether an APN is metered or not." into qt-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
7deafd415b
@@ -64,6 +64,7 @@ import android.telecom.PhoneAccount;
|
|||||||
import android.telecom.PhoneAccountHandle;
|
import android.telecom.PhoneAccountHandle;
|
||||||
import android.telecom.TelecomManager;
|
import android.telecom.TelecomManager;
|
||||||
import android.telephony.VisualVoicemailService.VisualVoicemailTask;
|
import android.telephony.VisualVoicemailService.VisualVoicemailTask;
|
||||||
|
import android.telephony.data.ApnSetting;
|
||||||
import android.telephony.emergency.EmergencyNumber;
|
import android.telephony.emergency.EmergencyNumber;
|
||||||
import android.telephony.emergency.EmergencyNumber.EmergencyServiceCategories;
|
import android.telephony.emergency.EmergencyNumber.EmergencyServiceCategories;
|
||||||
import android.telephony.ims.aidl.IImsConfig;
|
import android.telephony.ims.aidl.IImsConfig;
|
||||||
@@ -10949,26 +10950,31 @@ public class TelephonyManager {
|
|||||||
return new Pair<Integer, Integer>(-1, -1);
|
return new Pair<Integer, Integer>(-1, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return whether MMS data is enabled. This will tell if framework will accept a MMS network
|
* Return whether data is enabled for certain APN type. This will tell if framework will accept
|
||||||
* request on a subId.
|
* corresponding network requests on a subId.
|
||||||
*
|
*
|
||||||
* Mms is enabled if:
|
* {@link #isDataEnabled()} is directly associated with users' Mobile data toggle on / off. If
|
||||||
* 1) user data is turned on, or
|
* {@link #isDataEnabled()} returns false, it means in general all meter-ed data are disabled.
|
||||||
* 2) MMS is un-metered for this subscription, or
|
|
||||||
* 3) alwaysAllowMms setting {@link SubscriptionManager#setAlwaysAllowMmsData} is turned on.
|
|
||||||
*
|
*
|
||||||
* @return whether MMS data is allowed.
|
* This per APN type API gives a better idea whether data is allowed on a specific APN type.
|
||||||
|
* It will return true if:
|
||||||
|
*
|
||||||
|
* 1) User data is turned on, or
|
||||||
|
* 2) APN is un-metered for this subscription, or
|
||||||
|
* 3) APN type is whitelisted. E.g. MMS is whitelisted if
|
||||||
|
* {@link SubscriptionManager#setAlwaysAllowMmsData} is turned on.
|
||||||
|
*
|
||||||
|
* @return whether data is enabled for a apn type.
|
||||||
*
|
*
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
public boolean isMmsDataEnabled() {
|
public boolean isDataEnabledForApn(@ApnSetting.ApnType int apnType) {
|
||||||
String pkgForDebug = mContext != null ? mContext.getOpPackageName() : "<unknown>";
|
String pkgForDebug = mContext != null ? mContext.getOpPackageName() : "<unknown>";
|
||||||
try {
|
try {
|
||||||
ITelephony service = getITelephony();
|
ITelephony service = getITelephony();
|
||||||
if (service != null) {
|
if (service != null) {
|
||||||
return service.isMmsDataEnabled(getSubId(), pkgForDebug);
|
return service.isDataEnabledForApn(apnType, getSubId(), pkgForDebug);
|
||||||
}
|
}
|
||||||
} catch (RemoteException ex) {
|
} catch (RemoteException ex) {
|
||||||
if (!isSystemProcess()) {
|
if (!isSystemProcess()) {
|
||||||
@@ -10977,4 +10983,24 @@ public class TelephonyManager {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether an APN type is metered or not. It will be evaluated with the subId associated
|
||||||
|
* with the TelephonyManager instance.
|
||||||
|
*
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public boolean isApnMetered(@ApnSetting.ApnType int apnType) {
|
||||||
|
try {
|
||||||
|
ITelephony service = getITelephony();
|
||||||
|
if (service != null) {
|
||||||
|
return service.isApnMetered(apnType, getSubId());
|
||||||
|
}
|
||||||
|
} catch (RemoteException ex) {
|
||||||
|
if (!isSystemProcess()) {
|
||||||
|
ex.rethrowAsRuntimeException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1967,5 +1967,7 @@ interface ITelephony {
|
|||||||
|
|
||||||
boolean isModemEnabledForSlot(int slotIndex, String callingPackage);
|
boolean isModemEnabledForSlot(int slotIndex, String callingPackage);
|
||||||
|
|
||||||
boolean isMmsDataEnabled(int subId, String callingPackage);
|
boolean isDataEnabledForApn(int apnType, int subId, String callingPackage);
|
||||||
|
|
||||||
|
boolean isApnMetered(int apnType, int subId);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user