Merge "Ignore carrier apps when checking for idleness" into mnc-dev
This commit is contained in:
@@ -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();
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user