Merge "Ignore carrier apps when checking for idleness" into mnc-dev

This commit is contained in:
Zach Johnson
2015-06-09 00:06:20 +00:00
committed by Android (Google) Code Review
4 changed files with 36 additions and 4 deletions

View File

@@ -33422,6 +33422,7 @@ package android.telephony {
method public void call(java.lang.String, java.lang.String); method public void call(java.lang.String, java.lang.String);
method public boolean canChangeDtmfToneLength(); method public boolean canChangeDtmfToneLength();
method public int checkCarrierPrivilegesForPackage(java.lang.String); method public int checkCarrierPrivilegesForPackage(java.lang.String);
method public int checkCarrierPrivilegesForPackageAnyPhone(java.lang.String);
method public void dial(java.lang.String); method public void dial(java.lang.String);
method public boolean disableDataConnectivity(); method public boolean disableDataConnectivity();
method public boolean enableDataConnectivity(); method public boolean enableDataConnectivity();

View File

@@ -57,6 +57,7 @@ import android.os.SystemClock;
import android.os.UserHandle; import android.os.UserHandle;
import android.os.UserManager; import android.os.UserManager;
import android.provider.Settings; import android.provider.Settings;
import android.telephony.TelephonyManager;
import android.util.ArraySet; import android.util.ArraySet;
import android.util.AtomicFile; import android.util.AtomicFile;
import android.util.Log; import android.util.Log;
@@ -725,6 +726,10 @@ public class UsageStatsService extends SystemService implements
return false; return false;
} }
if (isCarrierApp(packageName)) {
return false;
}
if (mAppWidgetManager != null if (mAppWidgetManager != null
&& mAppWidgetManager.isBoundWidgetPackage(packageName, userId)) { && mAppWidgetManager.isBoundWidgetPackage(packageName, userId)) {
return false; return false;
@@ -754,6 +759,12 @@ public class UsageStatsService extends SystemService implements
return false; return false;
} }
private boolean isCarrierApp(String packageName) {
TelephonyManager telephonyManager = getContext().getSystemService(TelephonyManager.class);
return telephonyManager.checkCarrierPrivilegesForPackageAnyPhone(packageName)
== TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS;
}
void informListeners(String packageName, int userId, boolean isIdle) { void informListeners(String packageName, int userId, boolean isIdle) {
for (AppIdleStateChangeListener listener : mPackageAccessListeners) { for (AppIdleStateChangeListener listener : mPackageAccessListeners) {
listener.onAppIdleStateChanged(packageName, userId, isIdle); listener.onAppIdleStateChanged(packageName, userId, isIdle);

View File

@@ -3658,11 +3658,11 @@ public class TelephonyManager {
/** @hide */ /** @hide */
@SystemApi @SystemApi
public int checkCarrierPrivilegesForPackage(String pkgname) { public int checkCarrierPrivilegesForPackage(String pkgName) {
try { try {
ITelephony telephony = getITelephony(); ITelephony telephony = getITelephony();
if (telephony != null) if (telephony != null)
return telephony.checkCarrierPrivilegesForPackage(pkgname); return telephony.checkCarrierPrivilegesForPackage(pkgName);
} catch (RemoteException ex) { } catch (RemoteException ex) {
Rlog.e(TAG, "checkCarrierPrivilegesForPackage RemoteException", ex); Rlog.e(TAG, "checkCarrierPrivilegesForPackage RemoteException", ex);
} catch (NullPointerException ex) { } catch (NullPointerException ex) {
@@ -3671,6 +3671,21 @@ public class TelephonyManager {
return CARRIER_PRIVILEGE_STATUS_NO_ACCESS; return CARRIER_PRIVILEGE_STATUS_NO_ACCESS;
} }
/** @hide */
@SystemApi
public int checkCarrierPrivilegesForPackageAnyPhone(String pkgName) {
try {
ITelephony telephony = getITelephony();
if (telephony != null)
return telephony.checkCarrierPrivilegesForPackageAnyPhone(pkgName);
} catch (RemoteException ex) {
Rlog.e(TAG, "checkCarrierPrivilegesForPackageAnyPhone RemoteException", ex);
} catch (NullPointerException ex) {
Rlog.e(TAG, "checkCarrierPrivilegesForPackageAnyPhone NPE", ex);
}
return CARRIER_PRIVILEGE_STATUS_NO_ACCESS;
}
/** @hide */ /** @hide */
@SystemApi @SystemApi
public List<String> getCarrierPackageNamesForIntent(Intent intent) { public List<String> getCarrierPackageNamesForIntent(Intent intent) {

View File

@@ -740,9 +740,14 @@ interface ITelephony {
int getCarrierPrivilegeStatus(); int getCarrierPrivilegeStatus();
/** /**
* Similar to above, but check for pkg whose name is pkgname. * Similar to above, but check for the package whose name is pkgName.
*/ */
int checkCarrierPrivilegesForPackage(String pkgname); int checkCarrierPrivilegesForPackage(String pkgName);
/**
* Similar to above, but check across all phones.
*/
int checkCarrierPrivilegesForPackageAnyPhone(String pkgName);
/** /**
* Returns list of the package names of the carrier apps that should handle the input intent * Returns list of the package names of the carrier apps that should handle the input intent